[SCM] WebKit Debian packaging branch, webkit-1.1, updated. upstream/1.1.15.1-1414-gc69ee75

pfeldman at chromium.org pfeldman at chromium.org
Thu Oct 29 20:34:49 UTC 2009


The following commit has been merged in the webkit-1.1 branch:
commit b81051441ceecbf0228d208742413046e083ae26
Author: pfeldman at chromium.org <pfeldman at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Sun Sep 27 09:14:19 2009 +0000

    2009-09-26  Pavel Feldman  <pfeldman at chromium.org>
    
            Reviewed by Timothy Hatcher.
    
            Web Inspector: Do not track DOM changes while inspector window is closed.
    
            https://bugs.webkit.org/show_bug.cgi?id=29769
    
            * inspector/InspectorController.cpp:
            (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
            (WebCore::InspectorController::populateScriptObjects):
            (WebCore::InspectorController::resetScriptObjects):
            (WebCore::InspectorController::didCommitLoad):
            * inspector/InspectorController.h:
            * inspector/InspectorDOMAgent.cpp:
            (WebCore::InspectorDOMAgent::setDocument):
            * inspector/InspectorDOMAgent.h:
            * loader/FrameLoader.cpp:
            (WebCore::FrameLoader::dispatchWindowObjectAvailable):
            * page/android/InspectorControllerAndroid.cpp:
            (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@48798 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index b75d5de..9a420b6 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -2,6 +2,28 @@
 
         Reviewed by Timothy Hatcher.
 
+        Web Inspector: Do not track DOM changes while inspector window is closed.
+
+        https://bugs.webkit.org/show_bug.cgi?id=29769
+
+        * inspector/InspectorController.cpp:
+        (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
+        (WebCore::InspectorController::populateScriptObjects):
+        (WebCore::InspectorController::resetScriptObjects):
+        (WebCore::InspectorController::didCommitLoad):
+        * inspector/InspectorController.h:
+        * inspector/InspectorDOMAgent.cpp:
+        (WebCore::InspectorDOMAgent::setDocument):
+        * inspector/InspectorDOMAgent.h:
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::dispatchWindowObjectAvailable):
+        * page/android/InspectorControllerAndroid.cpp:
+        (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
+
+2009-09-26  Pavel Feldman  <pfeldman at chromium.org>
+
+        Reviewed by Timothy Hatcher.
+
         Web Inspector: [REGRESSION] Double Clicking Resources Fails to Open in New Window
 
         https://bugs.webkit.org/show_bug.cgi?id=29762
diff --git a/WebCore/inspector/InspectorController.cpp b/WebCore/inspector/InspectorController.cpp
index 69a7e60..c66c7f2 100644
--- a/WebCore/inspector/InspectorController.cpp
+++ b/WebCore/inspector/InspectorController.cpp
@@ -503,6 +503,13 @@ void InspectorController::handleMousePressOnNode(Node* node)
     inspect(node);
 }
 
+void InspectorController::inspectedWindowScriptObjectCleared(Frame* frame)
+{
+    if (!enabled() || !m_frontend || frame != m_inspectedPage->mainFrame())
+        return;
+    resetInjectedScript();
+}
+
 void InspectorController::windowScriptObjectAvailable()
 {
     if (!m_page || !enabled())
@@ -644,9 +651,7 @@ void InspectorController::populateScriptObjects()
     if (!m_frontend)
         return;
 
-    // Initialize dom agent and reset injected script state first.
-    if (m_domAgent->setDocument(m_inspectedPage->mainFrame()->document()))
-        resetInjectedScript();
+    m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
 
     ResourcesMap::iterator resourcesEnd = m_resources.end();
     for (ResourcesMap::iterator it = m_resources.begin(); it != resourcesEnd; ++it)
@@ -694,6 +699,7 @@ void InspectorController::resetScriptObjects()
         m_timelineAgent->reset();
 
     m_frontend->reset();
+    m_domAgent->setDocument(0);
 }
 
 void InspectorController::pruneResources(ResourcesMap* resourceMap, DocumentLoader* loaderToKeep)
@@ -758,10 +764,9 @@ void InspectorController::didCommitLoad(DocumentLoader* loader)
                 // identifierForInitialRequest.
                 m_mainResource = 0;
             }
+            if (windowVisible())
+                m_domAgent->setDocument(m_inspectedPage->mainFrame()->document());
         }
-
-        if (m_domAgent && m_domAgent->setDocument(m_inspectedPage->mainFrame()->document()))
-            resetInjectedScript();
     }
 
     for (Frame* frame = loader->frame(); frame; frame = frame->tree()->traverseNext(loader->frame()))
@@ -1109,6 +1114,7 @@ void InspectorController::didUseDOMStorage(StorageArea* storageArea, bool isLoca
     RefPtr<InspectorDOMStorageResource> resource = InspectorDOMStorageResource::create(domStorage.get(), isLocalStorage, frame);
 
     m_domStorageResources.add(resource);
+
     if (m_frontend)
         resource->bind(m_frontend.get());
 }
diff --git a/WebCore/inspector/InspectorController.h b/WebCore/inspector/InspectorController.h
index 20295aa..ff7a516 100644
--- a/WebCore/inspector/InspectorController.h
+++ b/WebCore/inspector/InspectorController.h
@@ -196,6 +196,7 @@ public:
     void mouseDidMoveOverElement(const HitTestResult&, unsigned modifierFlags);
     void handleMousePressOnNode(Node*);
 
+    void inspectedWindowScriptObjectCleared(Frame*);
     void windowScriptObjectAvailable();
 
     void setFrontendProxyObject(ScriptState* state, ScriptObject webInspectorObj, ScriptObject injectedScriptObj = ScriptObject());
diff --git a/WebCore/inspector/InspectorDOMAgent.cpp b/WebCore/inspector/InspectorDOMAgent.cpp
index 4a4902d..d893796 100644
--- a/WebCore/inspector/InspectorDOMAgent.cpp
+++ b/WebCore/inspector/InspectorDOMAgent.cpp
@@ -70,10 +70,10 @@ InspectorDOMAgent::~InspectorDOMAgent()
     setDocument(0);
 }
 
-bool InspectorDOMAgent::setDocument(Document* doc)
+void InspectorDOMAgent::setDocument(Document* doc)
 {
     if (doc == mainFrameDocument())
-        return false;
+        return;
     discardBindings();
 
     ListHashSet<RefPtr<Document> > copy = m_documents;
@@ -88,7 +88,6 @@ bool InspectorDOMAgent::setDocument(Document* doc)
             pushDocumentToFrontend();
         }
     }
-    return true;
 }
 
 void InspectorDOMAgent::releaseDanglingNodes()
diff --git a/WebCore/inspector/InspectorDOMAgent.h b/WebCore/inspector/InspectorDOMAgent.h
index bd539a5..c430c57 100644
--- a/WebCore/inspector/InspectorDOMAgent.h
+++ b/WebCore/inspector/InspectorDOMAgent.h
@@ -75,7 +75,7 @@ namespace WebCore {
         void getCookies(long callId);
 
         // Methods called from the InspectorController.
-        bool setDocument(Document* document);
+        void setDocument(Document* document);
         void releaseDanglingNodes();
 
         Node* nodeForId(long nodeId);
diff --git a/WebCore/loader/FrameLoader.cpp b/WebCore/loader/FrameLoader.cpp
index a3a65c4..57cf85a 100644
--- a/WebCore/loader/FrameLoader.cpp
+++ b/WebCore/loader/FrameLoader.cpp
@@ -5193,6 +5193,8 @@ void FrameLoader::dispatchWindowObjectAvailable()
 
 #if ENABLE(INSPECTOR)
     if (Page* page = m_frame->page()) {
+        if (InspectorController* inspector = page->inspectorController())
+            inspector->inspectedWindowScriptObjectCleared(m_frame);
         if (InspectorController* inspector = page->parentInspectorController())
             inspector->windowScriptObjectAvailable();
     }
diff --git a/WebCore/page/android/InspectorControllerAndroid.cpp b/WebCore/page/android/InspectorControllerAndroid.cpp
index 3ba64e9..978bc25 100644
--- a/WebCore/page/android/InspectorControllerAndroid.cpp
+++ b/WebCore/page/android/InspectorControllerAndroid.cpp
@@ -90,6 +90,7 @@ void InspectorController::addProfile(PassRefPtr<JSC::Profile>, unsigned int, con
 void InspectorController::inspectedPageDestroyed() {}
 void InspectorController::resourceRetrievedByXMLHttpRequest(unsigned long identifier, JSC::UString& sourceString) {}
 
+void InspectorController::inspectedWindowScriptObjectCleared(Frame* frame) {}
 void InspectorController::startGroup(MessageSource source, JSC::ExecState* exec, const JSC::ArgList& arguments, unsigned lineNumber, const String& sourceURL) {}
 void InspectorController::endGroup(MessageSource source, unsigned lineNumber, const String& sourceURL) {}
 void InspectorController::startTiming(const JSC::UString& title) {}

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list