Index: Source/core/html/HTMLPlugInElement.h |
diff --git a/Source/core/html/HTMLPlugInElement.h b/Source/core/html/HTMLPlugInElement.h |
index 3bfed4f613d6dd3909e42971b0d05eccb98321f3..a2c94c290b20d4cbf0368fd044fcd79e37c8f927 100644 |
--- a/Source/core/html/HTMLPlugInElement.h |
+++ b/Source/core/html/HTMLPlugInElement.h |
@@ -56,6 +56,9 @@ public: |
void setNeedsWidgetUpdate(bool needsWidgetUpdate) { m_needsWidgetUpdate = needsWidgetUpdate; } |
void updateWidget(); |
+ void requestPluginCreationWithoutRendererIfPossible(); |
+ void createPluginWithoutRenderer(); |
+ |
protected: |
HTMLPlugInElement(const QualifiedName& tagName, Document&, bool createdByParser, PreferPlugInsForImagesOption); |
@@ -124,7 +127,7 @@ private: |
DisplayState displayState() const { return m_displayState; } |
void setDisplayState(DisplayState state) { m_displayState = state; } |
const String loadedMimeType() const; |
- bool loadPlugin(const KURL&, const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues, bool useFallback); |
+ bool loadPlugin(const KURL&, const String& mimeType, const Vector<String>& paramNames, const Vector<String>& paramValues, bool useFallback, bool requireRenderer); |
bool pluginIsLoadable(const KURL&, const String& mimeType); |
bool wouldLoadAsNetscapePlugin(const String& url, const String& serviceType); |
@@ -134,6 +137,13 @@ private: |
bool m_needsWidgetUpdate; |
bool m_shouldPreferPlugInsForImages; |
DisplayState m_displayState; |
+ |
+ // Normally the Widget is stored in HTMLFrameOwnerElement::m_widget. |
+ // However, plugins can persist even when not rendered. In order to |
+ // prevent confusing code which may assume that widget() != null |
+ // means the frame is active, we save off m_widget here while |
+ // the plugin is persisting but not being displayed. |
+ RefPtr<Widget> m_persistedPluginWidget; |
}; |
inline bool isHTMLPlugInElement(const Element& element) |