summaryrefslogtreecommitdiff
path: root/Source/WebCore/rendering/RenderEmbeddedObject.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/rendering/RenderEmbeddedObject.h')
-rw-r--r--Source/WebCore/rendering/RenderEmbeddedObject.h32
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);
}