[Chromium] WebFrameImpl::m_frame is redundant now that WebFrameImpl inherits from...
authorabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 28 Sep 2012 20:57:08 +0000 (20:57 +0000)
committerabarth@webkit.org <abarth@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 28 Sep 2012 20:57:08 +0000 (20:57 +0000)
https://bugs.webkit.org/show_bug.cgi?id=97934

Reviewed by James Robinson.

After http://trac.webkit.org/changeset/129910, WebFrameImpl inherits
from FrameDestructionObserver, which means it no longer need to manage
its own weak pointer to WebCore::Frame.

* src/FrameLoaderClientImpl.cpp:
(WebKit::FrameLoaderClientImpl::frameLoaderDestroyed):
* src/WebFrameImpl.cpp:
(WebKit::WebFrameImpl::WebFrameImpl):
(WebKit::WebFrameImpl::setWebCoreFrame):
* src/WebFrameImpl.h:
(WebKit::WebFrameImpl::frameView):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@129947 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/FrameLoaderClientImpl.cpp
Source/WebKit/chromium/src/WebFrameImpl.cpp
Source/WebKit/chromium/src/WebFrameImpl.h

index ed9b927..37293ae 100644 (file)
@@ -1,3 +1,22 @@
+2012-09-28  Adam Barth  <abarth@webkit.org>
+
+        [Chromium] WebFrameImpl::m_frame is redundant now that WebFrameImpl inherits from FrameDestructionObserver
+        https://bugs.webkit.org/show_bug.cgi?id=97934
+
+        Reviewed by James Robinson.
+
+        After http://trac.webkit.org/changeset/129910, WebFrameImpl inherits
+        from FrameDestructionObserver, which means it no longer need to manage
+        its own weak pointer to WebCore::Frame.
+
+        * src/FrameLoaderClientImpl.cpp:
+        (WebKit::FrameLoaderClientImpl::frameLoaderDestroyed):
+        * src/WebFrameImpl.cpp:
+        (WebKit::WebFrameImpl::WebFrameImpl):
+        (WebKit::WebFrameImpl::setWebCoreFrame):
+        * src/WebFrameImpl.h:
+        (WebKit::WebFrameImpl::frameView):
+
 2012-09-28  Stephen Chenney  <schenney@chromium.org>
 
         Unreviewed Chromium Win build fix.
index b2e8256..8ca6d23 100644 (file)
@@ -125,7 +125,7 @@ void FrameLoaderClientImpl::frameLoaderDestroyed()
     // serves to keep us alive until the FrameLoader is done with us.  The
     // FrameLoader calls this method when it's going away.  Therefore, we balance
     // out that extra reference, which may cause 'this' to be deleted.
-    m_webFrame->closing();
+    ASSERT(!m_webFrame->frame());
     m_webFrame->deref();
 }
 
index cc7f407..25fa3ef 100644 (file)
@@ -2170,7 +2170,6 @@ WebFrameImpl::WebFrameImpl(WebFrameClient* client)
     : FrameDestructionObserver(0)
     , m_frameLoaderClient(this)
     , m_client(client)
-    , m_frame(0)
     , m_currentActiveMatchFrame(0)
     , m_activeMatchIndexInCurrentFrame(-1)
     , m_locatingActiveRect(false)
@@ -2203,8 +2202,7 @@ WebFrameImpl::~WebFrameImpl()
 void WebFrameImpl::setWebCoreFrame(WebCore::Frame* frame)
 {
     ASSERT(frame);
-    m_frame = frame;
-    observeFrame(m_frame);
+    observeFrame(frame);
 }
 
 void WebFrameImpl::initializeAsMainFrame(WebCore::Page* page)
@@ -2396,11 +2394,6 @@ void WebFrameImpl::setCanHaveScrollbars(bool canHaveScrollbars)
     frame()->view()->setCanHaveScrollbars(canHaveScrollbars);
 }
 
-void WebFrameImpl::closing()
-{
-    m_frame = 0;
-}
-
 void WebFrameImpl::invalidateArea(AreaToInvalidate area)
 {
     ASSERT(frame() && frame()->view());
index f2ed3c7..2686aad 100644 (file)
@@ -268,8 +268,7 @@ public:
 
     WebViewImpl* viewImpl() const;
 
-    WebCore::Frame* frame() const { return m_frame; }
-    WebCore::FrameView* frameView() const { return m_frame ? m_frame->view() : 0; }
+    WebCore::FrameView* frameView() const { return frame() ? frame()->view() : 0; }
 
     // Getters for the impls corresponding to Get(Provisional)DataSource. They
     // may return 0 if there is no corresponding data source.
@@ -331,11 +330,7 @@ private:
       InvalidateAll          // Both content area and the scrollbar.
     };
 
-    WebFrameImpl(WebFrameClient*);
-
-    // Informs the WebFrame that the Frame is being closed, called by the
-    // WebFrameLoaderClient
-    void closing();
+    explicit WebFrameImpl(WebFrameClient*);
 
     // Sets the local WebCore frame and registers destruction observers.
     void setWebCoreFrame(WebCore::Frame*);
@@ -421,11 +416,6 @@ private:
 
     WebFrameClient* m_client;
 
-    // FIXME: this is redundant as we already have m_frame from FrameDestructionObserver.
-    // This is a weak pointer to our corresponding WebCore frame.  A reference to
-    // ourselves is held while frame_ is valid.  See our Closing method.
-    WebCore::Frame* m_frame;
-
     // A way for the main frame to keep track of which frame has an active
     // match. Should be 0 for all other frames.
     WebFrameImpl* m_currentActiveMatchFrame;