Index: Source/web/WebViewImpl.h |
diff --git a/Source/web/WebViewImpl.h b/Source/web/WebViewImpl.h |
index aa402ad54de27914f62986ff15f22e0e353923d5..71272e54d76310e25203690795a4f35337c048bf 100644 |
--- a/Source/web/WebViewImpl.h |
+++ b/Source/web/WebViewImpl.h |
@@ -35,6 +35,7 @@ |
#include "platform/geometry/IntPoint.h" |
#include "platform/geometry/IntRect.h" |
#include "platform/graphics/GraphicsLayer.h" |
+#include "platform/heap/Handle.h" |
#include "public/platform/WebGestureCurveTarget.h" |
#include "public/platform/WebLayer.h" |
#include "public/platform/WebPoint.h" |
@@ -73,6 +74,7 @@ class UserGestureToken; |
class WebActiveGestureAnimation; |
class WebDevToolsAgentPrivate; |
class WebLocalFrameImpl; |
+class WebRemoteFrameImpl; |
class WebImage; |
class WebPagePopupImpl; |
class WebPlugin; |
@@ -492,6 +494,11 @@ public: |
bool matchesHeuristicsForGpuRasterizationForTesting() const { return m_matchesHeuristicsForGpuRasterization; } |
+#if ENABLE(OILPAN) |
+ void clearMainFrame(WebLocalFrameImpl*); |
+ void clearMainFrame(WebRemoteFrameImpl*); |
+#endif |
+ |
private: |
void setTopControlsContentOffset(float); |
@@ -605,6 +612,18 @@ private: |
OwnPtrWillBePersistent<Page> m_page; |
+#if ENABLE(OILPAN) |
+ // With Oilpan, the WebViewImpl object keeps a strong reference to one kind of main |
+ // frame, so as to keep it alive until the view lets it go. |
+ // |
+ // In the non-Oilpan case, the ref-counted frame is instead created and returned with |
+ // a ref count that must be balanced by eventually calling close() on the |
+ // Web*FrameImpl object. That close() call is also assumed for Oilpan, but we need |
+ // to keep the object alive until that time. Hence these mutually-exclusive Persistent<>s. |
+ Persistent<WebLocalFrameImpl> m_localMainFrame; |
+ Persistent<WebRemoteFrameImpl> m_remoteMainFrame; |
+#endif |
+ |
// An object that can be used to manipulate m_page->settings() without linking |
// against WebCore. This is lazily allocated the first time GetWebSettings() |
// is called. |
@@ -712,7 +731,7 @@ private: |
int m_flingModifier; |
bool m_flingSourceDevice; |
Vector<OwnPtr<LinkHighlight> > m_linkHighlights; |
- OwnPtr<FullscreenController> m_fullscreenController; |
+ OwnPtrWillBePersistent<FullscreenController> m_fullscreenController; |
bool m_showFPSCounter; |
bool m_showPaintRects; |