diff options
Diffstat (limited to 'Source/WebCore/rendering/RenderEmbeddedObject.h')
| -rw-r--r-- | Source/WebCore/rendering/RenderEmbeddedObject.h | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/Source/WebCore/rendering/RenderEmbeddedObject.h b/Source/WebCore/rendering/RenderEmbeddedObject.h index ef09ebb4d..af3b901a8 100644 --- a/Source/WebCore/rendering/RenderEmbeddedObject.h +++ b/Source/WebCore/rendering/RenderEmbeddedObject.h @@ -42,10 +42,14 @@ public: PluginCrashed, PluginBlockedByContentSecurityPolicy, InsecurePluginVersion, - PluginInactive, }; void setPluginUnavailabilityReason(PluginUnavailabilityReason); - bool showsUnavailablePluginIndicator() const; + void setPluginUnavailabilityReasonWithDescription(PluginUnavailabilityReason, const String& description); + + bool isPluginUnavailable() const { return m_isPluginUnavailable; } + bool showsUnavailablePluginIndicator() const { return isPluginUnavailable() && !m_isUnavailablePluginIndicatorHidden; } + + void setUnavailablePluginIndicatorIsHidden(bool); // FIXME: This belongs on HTMLObjectElement. bool hasFallbackContent() const { return m_hasFallbackContent; } @@ -53,6 +57,8 @@ public: void handleUnavailablePluginIndicatorEvent(Event*); + bool isReplacementObscured() const; + #if USE(ACCELERATED_COMPOSITING) virtual bool allowsAcceleratedCompositing() const; #endif @@ -63,10 +69,8 @@ protected: virtual CursorDirective getCursor(const LayoutPoint&, Cursor&) const; -#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) const RenderObjectChildList* children() const { return &m_children; } RenderObjectChildList* children() { return &m_children; } -#endif protected: virtual void layout() OVERRIDE; @@ -75,6 +79,9 @@ private: virtual const char* renderName() const { return "RenderEmbeddedObject"; } virtual bool isEmbeddedObject() const { return true; } + void paintSnapshotImage(PaintInfo&, const LayoutPoint&, Image*); + virtual void paintContents(PaintInfo&, const LayoutPoint&) OVERRIDE; + #if USE(ACCELERATED_COMPOSITING) virtual bool requiresLayer() const; #endif @@ -89,29 +96,30 @@ private: void setUnavailablePluginIndicatorIsPressed(bool); bool isInUnavailablePluginIndicator(MouseEvent*) const; bool isInUnavailablePluginIndicator(const LayoutPoint&) const; - bool getReplacementTextGeometry(const LayoutPoint& accumulatedOffset, FloatRect& contentRect, Path&, FloatRect& replacementTextRect, Font&, TextRun&, float& textWidth) const; + bool getReplacementTextGeometry(const LayoutPoint& accumulatedOffset, FloatRect& contentRect, Path&, FloatRect& replacementTextRect, FloatRect& arrowRect, Font&, TextRun&, float& textWidth) const; + LayoutRect unavailablePluginIndicatorBounds(const LayoutPoint&) const; -#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) - virtual bool canHaveChildren() const { return node() && toElement(node())->isMediaElement(); } + virtual bool canHaveChildren() const; virtual RenderObjectChildList* virtualChildren() { return children(); } virtual const RenderObjectChildList* virtualChildren() const { return children(); } -#endif + + virtual bool canHaveWidget() const { return true; } bool m_hasFallbackContent; // FIXME: This belongs on HTMLObjectElement. - bool m_showsUnavailablePluginIndicator; + bool m_isPluginUnavailable; + bool m_isUnavailablePluginIndicatorHidden; PluginUnavailabilityReason m_pluginUnavailabilityReason; String m_unavailablePluginReplacementText; bool m_unavailablePluginIndicatorIsPressed; bool m_mouseDownWasInUnavailablePluginIndicator; -#if ENABLE(PLUGIN_PROXY_FOR_VIDEO) RenderObjectChildList m_children; -#endif + String m_unavailabilityDescription; }; inline RenderEmbeddedObject* toRenderEmbeddedObject(RenderObject* object) { - ASSERT(!object || object->isEmbeddedObject()); + ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isEmbeddedObject()); return static_cast<RenderEmbeddedObject*>(object); } |
