Index: Source/web/WebPluginContainerImpl.h |
diff --git a/Source/web/WebPluginContainerImpl.h b/Source/web/WebPluginContainerImpl.h |
index 46728ee49c15c26f3ee90f5d85531522531f6e4b..5515d7f3f9fb3f0b5cfe7fcd831d3cb660933e82 100644 |
--- a/Source/web/WebPluginContainerImpl.h |
+++ b/Source/web/WebPluginContainerImpl.h |
@@ -31,6 +31,7 @@ |
#ifndef WebPluginContainerImpl_h |
#define WebPluginContainerImpl_h |
+#include "core/frame/FrameDestructionObserver.h" |
#include "core/plugins/PluginView.h" |
#include "platform/Widget.h" |
#include "public/web/WebPluginContainer.h" |
@@ -65,7 +66,7 @@ class WebPlugin; |
class WebPluginLoadObserver; |
class WebExternalTextureLayer; |
-class WebPluginContainerImpl FINAL : public WebCore::PluginView, public WebPluginContainer { |
+class WebPluginContainerImpl FINAL : public WebCore::PluginView, public WebPluginContainer, public WebCore::FrameDestructionObserver { |
public: |
static PassRefPtr<WebPluginContainerImpl> create(WebCore::HTMLPlugInElement* element, WebPlugin* webPlugin) |
{ |
@@ -162,6 +163,10 @@ public: |
bool paintCustomOverhangArea(WebCore::GraphicsContext*, const WebCore::IntRect&, const WebCore::IntRect&, const WebCore::IntRect&); |
+#if ENABLE(OILPAN) |
+ virtual void detach() OVERRIDE; |
+#endif |
+ |
private: |
WebPluginContainerImpl(WebCore::HTMLPlugInElement* element, WebPlugin* webPlugin); |
virtual ~WebPluginContainerImpl(); |
@@ -185,6 +190,9 @@ private: |
void windowCutOutRects(const WebCore::IntRect& frameRect, |
Vector<WebCore::IntRect>& cutOutRects); |
+ // FIXME: Oilpan: consider moving Widget to the heap and turn this |
+ // into a traced member. For the time being, it is a bare pointer |
+ // of its owning PlugInElement and managed as such. |
WebCore::HTMLPlugInElement* m_element; |
WebPlugin* m_webPlugin; |
Vector<WebPluginLoadObserver*> m_pluginLoadObservers; |