bool RenderHTMLCanvas::requiresLayer() const { if (RenderReplaced::requiresLayer()) return true; HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(node()); return canvas && canvas->renderingContext() && canvas->renderingContext()->isAccelerated(); }
CompositingReasons RenderHTMLCanvas::additionalCompositingReasons() const { HTMLCanvasElement* canvas = toHTMLCanvasElement(node()); if (canvas->renderingContext() && canvas->renderingContext()->isAccelerated()) return CompositingReasonCanvas; return CompositingReasonNone; }
CompositingReasons RenderHTMLCanvas::additionalCompositingReasons(CompositingTriggerFlags triggers) const { if (!(triggers & CanvasTrigger)) return CompositingReasonNone; HTMLCanvasElement* canvas = toHTMLCanvasElement(node()); if (canvas->renderingContext() && canvas->renderingContext()->isAccelerated()) return CompositingReasonCanvas; return CompositingReasonNone; }
void InspectorCanvasAgent::findFramesWithUninstrumentedCanvases() { class NodeVisitor : public WrappedNodeVisitor { public: NodeVisitor(Page* page, FramesWithUninstrumentedCanvases& result) : m_page(page) , m_framesWithUninstrumentedCanvases(result) { } virtual void visitNode(Node* node) OVERRIDE { if (!node->hasTagName(HTMLNames::canvasTag) || !node->document() || !node->document()->frame()) return; Frame* frame = node->document()->frame(); if (frame->page() != m_page) return; HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(node); if (canvas->renderingContext()) m_framesWithUninstrumentedCanvases.set(frame, true); } private:
void JSHTMLCanvasElement::markChildren(MarkStack& markStack) { Base::markChildren(markStack); HTMLCanvasElement* canvas = static_cast<HTMLCanvasElement*>(impl()); JSGlobalData& globalData = *Heap::heap(this)->globalData(); markDOMObjectWrapper(markStack, globalData, canvas->renderingContext()); }