Title: [125832] trunk/Source/WebCore
Revision
125832
Author
[email protected]
Date
2012-08-16 17:29:35 -0700 (Thu, 16 Aug 2012)

Log Message

Rename DOMWindow::clear to something more descriptive
https://bugs.webkit.org/show_bug.cgi?id=93993

Reviewed by Eric Seidel.

As requested by Eric Seidel. In WebKit, we typically use "clear" to
mean zeroing out a pointer (e.g., OwnPtr::clear). For DOMWindow, it's
more like we're resetting the DOMWindow to a known state (i.e., its
initial state), modulo a wrinkle w.r.t. the PageCache. The new name
attempts to clarify the situation.

* dom/Document.cpp:
(WebCore::Document::~Document):
* loader/FrameLoader.cpp:
(WebCore::FrameLoader::clear):
* page/DOMWindow.cpp:
(WebCore::DOMWindow::~DOMWindow):
(WebCore::DOMWindow::frameDestroyed):
(WebCore::DOMWindow::resetUnlessSuspendedForPageCache):
(WebCore::DOMWindow::resetDOMWindowProperties):
* page/DOMWindow.h:
(DOMWindow):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (125831 => 125832)


--- trunk/Source/WebCore/ChangeLog	2012-08-17 00:18:29 UTC (rev 125831)
+++ trunk/Source/WebCore/ChangeLog	2012-08-17 00:29:35 UTC (rev 125832)
@@ -1,3 +1,28 @@
+2012-08-16  Adam Barth  <[email protected]>
+
+        Rename DOMWindow::clear to something more descriptive
+        https://bugs.webkit.org/show_bug.cgi?id=93993
+
+        Reviewed by Eric Seidel.
+
+        As requested by Eric Seidel. In WebKit, we typically use "clear" to
+        mean zeroing out a pointer (e.g., OwnPtr::clear). For DOMWindow, it's
+        more like we're resetting the DOMWindow to a known state (i.e., its
+        initial state), modulo a wrinkle w.r.t. the PageCache. The new name
+        attempts to clarify the situation.
+
+        * dom/Document.cpp:
+        (WebCore::Document::~Document):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::clear):
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::~DOMWindow):
+        (WebCore::DOMWindow::frameDestroyed):
+        (WebCore::DOMWindow::resetUnlessSuspendedForPageCache):
+        (WebCore::DOMWindow::resetDOMWindowProperties):
+        * page/DOMWindow.h:
+        (DOMWindow):
+
 2012-08-16  Sheriff Bot  <[email protected]>
 
         Unreviewed, rolling out r125717.

Modified: trunk/Source/WebCore/dom/Document.cpp (125831 => 125832)


--- trunk/Source/WebCore/dom/Document.cpp	2012-08-17 00:18:29 UTC (rev 125831)
+++ trunk/Source/WebCore/dom/Document.cpp	2012-08-17 00:29:35 UTC (rev 125832)
@@ -612,9 +612,9 @@
     ASSERT(!m_parentTreeScope);
     ASSERT(!m_guardRefCount);
 
-    // FIXME: Should we clear m_domWindow when we detach from the Frame?
+    // FIXME: Should we reset m_domWindow when we detach from the Frame?
     if (m_domWindow)
-        m_domWindow->clear();
+        m_domWindow->resetUnlessSuspendedForPageCache();
 
     m_scriptRunner.clear();
 

Modified: trunk/Source/WebCore/loader/FrameLoader.cpp (125831 => 125832)


--- trunk/Source/WebCore/loader/FrameLoader.cpp	2012-08-17 00:18:29 UTC (rev 125831)
+++ trunk/Source/WebCore/loader/FrameLoader.cpp	2012-08-17 00:29:35 UTC (rev 125832)
@@ -561,7 +561,7 @@
     // Do this after detaching the document so that the unload event works.
     if (clearWindowProperties) {
         InspectorInstrumentation::frameWindowDiscarded(m_frame, m_frame->document()->domWindow());
-        m_frame->document()->domWindow()->clear();
+        m_frame->document()->domWindow()->resetUnlessSuspendedForPageCache();
         m_frame->script()->clearWindowShell(newDocument->domWindow(), m_frame->document()->inPageCache());
     }
 

Modified: trunk/Source/WebCore/page/DOMWindow.cpp (125831 => 125832)


--- trunk/Source/WebCore/page/DOMWindow.cpp	2012-08-17 00:18:29 UTC (rev 125831)
+++ trunk/Source/WebCore/page/DOMWindow.cpp	2012-08-17 00:29:35 UTC (rev 125832)
@@ -437,9 +437,9 @@
     else
         willDestroyDocumentInFrame();
 
-    // As the ASSERTs above indicate, this clear should only be necesary if this DOMWindow is suspended for the page cache.
+    // As the ASSERTs above indicate, this reset should only be necessary if this DOMWindow is suspended for the page cache.
     // But we don't want to risk any of these objects hanging around after we've been destroyed.
-    clearDOMWindowProperties();
+    resetDOMWindowProperties();
 
     removeAllUnloadEventListeners(this);
     removeAllBeforeUnloadEventListeners(this);
@@ -474,7 +474,7 @@
 {
     willDestroyDocumentInFrame();
     FrameDestructionObserver::frameDestroyed();
-    clearDOMWindowProperties();
+    resetDOMWindowProperties();
 }
 
 void DOMWindow::willDetachPage()
@@ -522,16 +522,12 @@
     m_properties.remove(property);
 }
 
-void DOMWindow::clear()
+void DOMWindow::resetUnlessSuspendedForPageCache()
 {
-    // The main frame will always try to clear its DOMWindow when a new load is committed, even if that
-    // DOMWindow is suspended in the page cache.
-    // In those cases we need to make sure we don't actually clear it.
     if (m_suspendedForPageCache)
         return;
-    
     willDestroyDocumentInFrame();
-    clearDOMWindowProperties();
+    resetDOMWindowProperties();
 }
 
 void DOMWindow::suspendForPageCache()
@@ -567,7 +563,7 @@
         properties[i]->reconnectFrameFromPageCache(m_frame);
 }
 
-void DOMWindow::clearDOMWindowProperties()
+void DOMWindow::resetDOMWindowProperties()
 {
     m_properties.clear();
 

Modified: trunk/Source/WebCore/page/DOMWindow.h (125831 => 125832)


--- trunk/Source/WebCore/page/DOMWindow.h	2012-08-17 00:18:29 UTC (rev 125831)
+++ trunk/Source/WebCore/page/DOMWindow.h	2012-08-17 00:29:35 UTC (rev 125832)
@@ -109,7 +109,7 @@
         void registerProperty(DOMWindowProperty*);
         void unregisterProperty(DOMWindowProperty*);
 
-        void clear();
+        void resetUnlessSuspendedForPageCache();
         void suspendForPageCache();
         void resumeFromPageCache();
 
@@ -422,7 +422,7 @@
             PrepareDialogFunction = 0, void* functionContext = 0);
         bool isInsecureScriptAccess(DOMWindow* activeWindow, const String& urlString);
 
-        void clearDOMWindowProperties();
+        void resetDOMWindowProperties();
         void disconnectDOMWindowProperties();
         void reconnectDOMWindowProperties();
         void willDestroyDocumentInFrame();
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to