[SCM] WebKit Debian packaging branch, debian/experimental, updated. upstream/1.3.3-9427-gc2be6fc

pfeldman at chromium.org pfeldman at chromium.org
Wed Dec 22 14:43:18 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit 9db33975c11c8c303d5e4c533344ef316b165f86
Author: pfeldman at chromium.org <pfeldman at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Mon Oct 18 17:08:57 2010 +0000

    2010-10-18  Pavel Feldman  <pfeldman at chromium.org>
    
            Reviewed by Simon Fraser.
    
            Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
            https://bugs.webkit.org/show_bug.cgi?id=46224
    
            * CMakeLists.txt:
            * GNUmakefile.am:
            * WebCore.gypi:
            * WebCore.pro:
            * WebCore.vcproj/WebCore.vcproj:
            * WebCore.xcodeproj/project.pbxproj:
            * inspector/InspectorClient.cpp: Added.
            (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
            * inspector/InspectorClient.h:
            (WebCore::InspectorClient::InspectorClient):
    2010-10-18  Pavel Feldman  <pfeldman at chromium.org>
    
            Reviewed by Simon Fraser.
    
            Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
            https://bugs.webkit.org/show_bug.cgi?id=46224
    
            * WebCoreSupport/WebInspectorClientCF.cpp:
            (WebInspectorClient::sendMessageToFrontend):
    2010-10-18  Pavel Feldman  <pfeldman at chromium.org>
    
            Reviewed by Simon Fraser.
    
            Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
            https://bugs.webkit.org/show_bug.cgi?id=46224
    
            * WebCoreSupport/InspectorClientGtk.cpp:
            (WebKit::InspectorClient::sendMessageToFrontend):
    2010-10-18  Pavel Feldman  <pfeldman at chromium.org>
    
            Reviewed by Simon Fraser.
    
            Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
            https://bugs.webkit.org/show_bug.cgi?id=46224
    
            * WebCoreSupport/InspectorClientQt.cpp:
            (WebCore::InspectorClientQt::sendMessageToFrontend):
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@69968 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/CMakeLists.txt b/WebCore/CMakeLists.txt
index 76033cf..2289c2c 100644
--- a/WebCore/CMakeLists.txt
+++ b/WebCore/CMakeLists.txt
@@ -1103,6 +1103,7 @@ SET(WebCore_SOURCES
     inspector/InspectorBackend.cpp
     inspector/InspectorCSSAgent.cpp
     inspector/InspectorCSSStore.cpp
+    inspector/InspectorClient.cpp
     inspector/InspectorController.cpp
     inspector/InspectorDOMAgent.cpp
     inspector/InspectorDOMStorageResource.cpp
diff --git a/WebCore/ChangeLog b/WebCore/ChangeLog
index 4f08d7a..cc5d68a 100644
--- a/WebCore/ChangeLog
+++ b/WebCore/ChangeLog
@@ -1,3 +1,21 @@
+2010-10-18  Pavel Feldman  <pfeldman at chromium.org>
+
+        Reviewed by Simon Fraser.
+
+        Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
+        https://bugs.webkit.org/show_bug.cgi?id=46224
+
+        * CMakeLists.txt:
+        * GNUmakefile.am:
+        * WebCore.gypi:
+        * WebCore.pro:
+        * WebCore.vcproj/WebCore.vcproj:
+        * WebCore.xcodeproj/project.pbxproj:
+        * inspector/InspectorClient.cpp: Added.
+        (WebCore::InspectorClient::doDispatchMessageOnFrontendPage):
+        * inspector/InspectorClient.h:
+        (WebCore::InspectorClient::InspectorClient):
+
 2010-10-18  Andrei Popescu  <andreip at google.com>
 
         Reviewed by Jeremy Orlow.
diff --git a/WebCore/GNUmakefile.am b/WebCore/GNUmakefile.am
index 735f61b..c442113 100644
--- a/WebCore/GNUmakefile.am
+++ b/WebCore/GNUmakefile.am
@@ -1809,6 +1809,7 @@ webcore_sources += \
 	WebCore/inspector/InspectorApplicationCacheAgent.h \
 	WebCore/inspector/InspectorBackend.cpp \
 	WebCore/inspector/InspectorBackend.h \
+	WebCore/inspector/InspectorClient.cpp \
 	WebCore/inspector/InspectorClient.h \
 	WebCore/inspector/InspectorController.cpp \
 	WebCore/inspector/InspectorController.h \
diff --git a/WebCore/WebCore.exp.in b/WebCore/WebCore.exp.in
index f46a53a..36a8331 100644
--- a/WebCore/WebCore.exp.in
+++ b/WebCore/WebCore.exp.in
@@ -1227,6 +1227,7 @@ __ZN7WebCore22GeolocationServiceMock8setErrorEN3WTF10PassRefPtrINS_13PositionErr
 #endif
 
 #if ENABLE(INSPECTOR)
+__ZN7WebCore15InspectorClient31doDispatchMessageOnFrontendPageEPNS_4PageERKN3WTF6StringE
 __ZN7WebCore19InspectorController12ConsolePanelE
 __ZN7WebCore19InspectorController12ScriptsPanelE
 __ZN7WebCore19InspectorController13ProfilesPanelE
diff --git a/WebCore/WebCore.gypi b/WebCore/WebCore.gypi
index 7bbf85f..199c24c 100644
--- a/WebCore/WebCore.gypi
+++ b/WebCore/WebCore.gypi
@@ -1901,7 +1901,6 @@
             'html/parser/TextDocumentParser.h',
             'html/parser/TextViewSourceParser.cpp',
             'html/parser/TextViewSourceParser.h',
-            'inspector/InspectorClient.h',
             'inspector/ConsoleMessage.cpp',
             'inspector/ConsoleMessage.h',
             'inspector/InjectedScript.cpp',
@@ -1912,6 +1911,8 @@
             'inspector/InspectorApplicationCacheAgent.h',
             'inspector/InspectorBackend.cpp',
             'inspector/InspectorBackend.h',
+            'inspector/InspectorClient.cpp',
+            'inspector/InspectorClient.h',
             'inspector/InspectorController.cpp',
             'inspector/InspectorController.h',
             'inspector/InspectorCSSAgent.cpp',
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index fa73450..5af5a0a 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -992,6 +992,7 @@ SOURCES += \
     inspector/InspectorBackend.cpp \
     inspector/InspectorCSSAgent.cpp \
     inspector/InspectorCSSStore.cpp \
+    inspector/InspectorClient.cpp \
     inspector/InspectorController.cpp \
     inspector/InspectorDatabaseResource.cpp \
     inspector/InspectorDebuggerAgent.cpp \
diff --git a/WebCore/WebCore.vcproj/WebCore.vcproj b/WebCore/WebCore.vcproj/WebCore.vcproj
index a7cff52..ff3b64a 100644
--- a/WebCore/WebCore.vcproj/WebCore.vcproj
+++ b/WebCore/WebCore.vcproj/WebCore.vcproj
@@ -63191,6 +63191,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\inspector\InspectorClient.cpp"
+				>
+			</File>
+			<File
 				RelativePath="..\inspector\InspectorClient.h"
 				>
 			</File>
diff --git a/WebCore/WebCore.xcodeproj/project.pbxproj b/WebCore/WebCore.xcodeproj/project.pbxproj
index 6266452..0429a2f 100644
--- a/WebCore/WebCore.xcodeproj/project.pbxproj
+++ b/WebCore/WebCore.xcodeproj/project.pbxproj
@@ -1499,6 +1499,7 @@
 		7A0E770F10C00A8800A0276E /* InspectorFrontendHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A0E770C10C00A8800A0276E /* InspectorFrontendHost.h */; };
 		7A0E771E10C00DB100A0276E /* JSInspectorFrontendHost.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A0E771C10C00DB100A0276E /* JSInspectorFrontendHost.cpp */; };
 		7A0E771F10C00DB100A0276E /* JSInspectorFrontendHost.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A0E771D10C00DB100A0276E /* JSInspectorFrontendHost.h */; };
+		7A1F2B52126C61B20006A7E6 /* InspectorClient.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A1F2B51126C61B20006A7E6 /* InspectorClient.cpp */; };
 		7A24587B1021EAF4000A00AA /* InspectorDOMAgent.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A2458791021EAF4000A00AA /* InspectorDOMAgent.cpp */; };
 		7A24587C1021EAF4000A00AA /* InspectorDOMAgent.h in Headers */ = {isa = PBXBuildFile; fileRef = 7A24587A1021EAF4000A00AA /* InspectorDOMAgent.h */; settings = {ATTRIBUTES = (Private, ); }; };
 		7A674BDB0F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7A674BD90F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp */; };
@@ -7596,6 +7597,7 @@
 		7A0E770D10C00A8800A0276E /* InspectorFrontendHost.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = InspectorFrontendHost.idl; sourceTree = "<group>"; };
 		7A0E771C10C00DB100A0276E /* JSInspectorFrontendHost.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSInspectorFrontendHost.cpp; sourceTree = "<group>"; };
 		7A0E771D10C00DB100A0276E /* JSInspectorFrontendHost.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSInspectorFrontendHost.h; sourceTree = "<group>"; };
+		7A1F2B51126C61B20006A7E6 /* InspectorClient.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorClient.cpp; sourceTree = "<group>"; };
 		7A2458791021EAF4000A00AA /* InspectorDOMAgent.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = InspectorDOMAgent.cpp; sourceTree = "<group>"; };
 		7A24587A1021EAF4000A00AA /* InspectorDOMAgent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InspectorDOMAgent.h; sourceTree = "<group>"; };
 		7A674BD90F9EBF4E006CF099 /* PageGroupLoadDeferrer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PageGroupLoadDeferrer.cpp; sourceTree = "<group>"; };
@@ -12170,6 +12172,7 @@
 				B885E8D311E06DD2009FFBF4 /* InspectorApplicationCacheAgent.h */,
 				7A74ECB8101839A500BF939E /* InspectorBackend.cpp */,
 				7A74ECB9101839A600BF939E /* InspectorBackend.h */,
+				7A1F2B51126C61B20006A7E6 /* InspectorClient.cpp */,
 				1C81B9580E97330800266E07 /* InspectorClient.h */,
 				1C81B9570E97330800266E07 /* InspectorController.cpp */,
 				1C81B9560E97330800266E07 /* InspectorController.h */,
@@ -23627,6 +23630,7 @@
 				97DD4D860FDF4D6E00ECF9A4 /* XSSAuditor.cpp in Sources */,
 				4FA3B90A125CD12200300BAD /* InspectorState.cpp in Sources */,
 				9728C3131268E4390041E89B /* MarkupAccumulator.cpp in Sources */,
+				7A1F2B52126C61B20006A7E6 /* InspectorClient.cpp in Sources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
 		};
diff --git a/WebCore/inspector/InspectorClient.cpp b/WebCore/inspector/InspectorClient.cpp
new file mode 100644
index 0000000..434d697
--- /dev/null
+++ b/WebCore/inspector/InspectorClient.cpp
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2010 Google Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are
+ * met:
+ *
+ *     * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ *     * Redistributions in binary form must reproduce the above
+ * copyright notice, this list of conditions and the following disclaimer
+ * in the documentation and/or other materials provided with the
+ * distribution.
+ *     * Neither the name of Google Inc. nor the names of its
+ * contributors may be used to endorse or promote products derived from
+ * this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+ * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+ * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+ * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+ * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+ * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+ * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include "config.h"
+#include "InspectorClient.h"
+
+#if ENABLE(INSPECTOR)
+
+#include "Frame.h"
+#include "Page.h"
+#include "ScriptController.h"
+#include "ScriptSourceCode.h"
+
+namespace WebCore {
+
+bool InspectorClient::doDispatchMessageOnFrontendPage(Page* frontendPage, const String& message)
+{
+    if (!frontendPage)
+        return false;
+
+    Frame* frame = frontendPage->mainFrame();
+    if (!frame)
+        return false;
+
+    ScriptController* scriptController = frame->script();
+    if (!scriptController)
+        return false;
+
+    String dispatchToFrontend("WebInspector.dispatchMessageFromBackend(");
+    dispatchToFrontend += message;
+    dispatchToFrontend += ");";
+
+    // Do not call executeInWorld here since it will end up calling Document::updateStyleForAllDocuments().
+    // As a result we might re-enter CSSStyleSelector::styleForElement() which is terrible.
+    scriptController->evaluate(ScriptSourceCode(dispatchToFrontend));
+    return true;
+}
+
+} // namespace WebCore
+
+#endif // ENABLE(INSPECTOR)
diff --git a/WebCore/inspector/InspectorClient.h b/WebCore/inspector/InspectorClient.h
index bb71b13..0c78246 100644
--- a/WebCore/inspector/InspectorClient.h
+++ b/WebCore/inspector/InspectorClient.h
@@ -37,7 +37,7 @@ class Page;
 
 class InspectorClient {
 public:
-    virtual ~InspectorClient() {  }
+    virtual ~InspectorClient() { }
 
     virtual void inspectorDestroyed() = 0;
 
@@ -55,6 +55,8 @@ public:
     // However, there are some inspector controller states that should survive navigation (such as tracking resources
     // or recording timeline). Following callbacks allow embedders to track these states.
     virtual void updateInspectorStateCookie(const String&) { };
+
+    bool doDispatchMessageOnFrontendPage(Page* frontendPage, const String& message);
 };
 
 } // namespace WebCore
diff --git a/WebKit/cf/ChangeLog b/WebKit/cf/ChangeLog
index 957dce1..1efdd4d 100644
--- a/WebKit/cf/ChangeLog
+++ b/WebKit/cf/ChangeLog
@@ -1,3 +1,13 @@
+2010-10-18  Pavel Feldman  <pfeldman at chromium.org>
+
+        Reviewed by Simon Fraser.
+
+        Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
+        https://bugs.webkit.org/show_bug.cgi?id=46224
+
+        * WebCoreSupport/WebInspectorClientCF.cpp:
+        (WebInspectorClient::sendMessageToFrontend):
+
 2010-06-14  Ilya Tikhonovsky  <loislo at chromium.org>
 
         Reviewed by Pavel Feldman.
diff --git a/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp b/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp
index dc5a186..62fdd4d 100644
--- a/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp
+++ b/WebKit/cf/WebCoreSupport/WebInspectorClientCF.cpp
@@ -102,20 +102,5 @@ void WebInspectorClient::releaseFrontendPage()
 
 bool WebInspectorClient::sendMessageToFrontend(const String& message)
 {
-    if (!m_frontendPage)
-        return false;
-
-    Frame* frame = m_frontendPage->mainFrame();
-    if (!frame)
-        return false;
-
-    ScriptController* scriptController = frame->script();
-    if (!scriptController)
-        return false;
-
-    String dispatchToFrontend("WebInspector.dispatchMessageFromBackend(");
-    dispatchToFrontend += message;
-    dispatchToFrontend += ");";
-    scriptController->executeScript(dispatchToFrontend);
-    return true;
+    return doDispatchMessageOnFrontendPage(m_frontendPage, message);
 }
diff --git a/WebKit/gtk/ChangeLog b/WebKit/gtk/ChangeLog
index cd3becd..4e9f00d 100644
--- a/WebKit/gtk/ChangeLog
+++ b/WebKit/gtk/ChangeLog
@@ -1,3 +1,13 @@
+2010-10-18  Pavel Feldman  <pfeldman at chromium.org>
+
+        Reviewed by Simon Fraser.
+
+        Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
+        https://bugs.webkit.org/show_bug.cgi?id=46224
+
+        * WebCoreSupport/InspectorClientGtk.cpp:
+        (WebKit::InspectorClient::sendMessageToFrontend):
+
 2010-10-14  Antonio Gomes  <agomes at rim.com>
 
         Reviewed by Martin Robinson and Xan Lopez.
diff --git a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
index c8b42d7..2c1ffab 100644
--- a/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
+++ b/WebKit/gtk/WebCoreSupport/InspectorClientGtk.cpp
@@ -222,22 +222,7 @@ void InspectorClient::storeSetting(const String&, const String&)
 
 bool InspectorClient::sendMessageToFrontend(const String& message)
 {
-    if (!m_frontendPage)
-        return false;
-
-    Frame* frame = m_frontendPage->mainFrame();
-    if (!frame)
-        return false;
-
-    ScriptController* scriptController = frame->script();
-    if (!scriptController)
-        return false;
-
-    String dispatchToFrontend("WebInspector.dispatchMessageFromBackend(");
-    dispatchToFrontend += message;
-    dispatchToFrontend += ");";
-    scriptController->executeScript(dispatchToFrontend);
-    return true;
+    return doDispatchMessageOnFrontendPage(m_frontendPage, message);
 }
 
 const char* InspectorClient::inspectorFilesPath()
diff --git a/WebKit/qt/ChangeLog b/WebKit/qt/ChangeLog
index 83f543b..130f615 100644
--- a/WebKit/qt/ChangeLog
+++ b/WebKit/qt/ChangeLog
@@ -1,3 +1,13 @@
+2010-10-18  Pavel Feldman  <pfeldman at chromium.org>
+
+        Reviewed by Simon Fraser.
+
+        Web Inspector: [crash] when Inspector Open in CSSStyleSelector::loadPendingImages().
+        https://bugs.webkit.org/show_bug.cgi?id=46224
+
+        * WebCoreSupport/InspectorClientQt.cpp:
+        (WebCore::InspectorClientQt::sendMessageToFrontend):
+
 2010-10-18  No'am Rosenthal  <noam.rosenthal at nokia.com>
 
         Reviewed by Andreas Kling.
diff --git a/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp b/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
index b6673e6..e596870 100644
--- a/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
+++ b/WebKit/qt/WebCoreSupport/InspectorClientQt.cpp
@@ -39,7 +39,6 @@
 #include "NotImplemented.h"
 #include "Page.h"
 #include "PlatformString.h"
-#include "ScriptController.h"
 #include "ScriptDebugServer.h"
 #include "qwebinspector.h"
 #include "qwebinspector_p.h"
@@ -266,22 +265,7 @@ bool InspectorClientQt::sendMessageToFrontend(const String& message)
         return false;
 
     Page* frontendPage = QWebPagePrivate::core(m_frontendWebPage);
-    if (!frontendPage)
-        return false;
-
-    Frame* frame = frontendPage->mainFrame();
-    if (!frame)
-        return false;
-
-    ScriptController* scriptController = frame->script();
-    if (!scriptController)
-        return false;
-
-    String dispatchToFrontend("WebInspector.dispatchMessageFromBackend(");
-    dispatchToFrontend += message;
-    dispatchToFrontend += ");";
-    scriptController->executeScript(dispatchToFrontend);
-    return true;
+    return doDispatchMessageOnFrontendPage(frontendPage, message);
 }
 
 static String variantToSetting(const QVariant& qvariant)

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list