Index: Source/web/WebViewImpl.h |
diff --git a/Source/web/WebViewImpl.h b/Source/web/WebViewImpl.h |
index c93df05bd045766dc4451a8e5d6b9c4d589a452a..81ed891caa412e91ffe250ad4b3203b4a13c0dc3 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" |
@@ -72,6 +73,7 @@ class UserGestureToken; |
class WebActiveGestureAnimation; |
class WebDevToolsAgentPrivate; |
class WebLocalFrameImpl; |
+class WebRemoteFrameImpl; |
class WebImage; |
class WebPagePopupImpl; |
class WebPlugin; |
@@ -595,6 +597,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. |
@@ -700,7 +714,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; |