[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 11:44:05 UTC 2010


The following commit has been merged in the debian/experimental branch:
commit fdb902612231038bd7f04d89b37b2d5e4e6a55ff
Author: pfeldman at chromium.org <pfeldman at chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Date:   Thu Aug 5 10:00:32 2010 +0000

    2010-08-05  Pavel Feldman  <pfeldman at chromium.org>
    
            Reviewed by Yury Semikhatsky.
    
            DevTools: get rid of delayed command dispatching on front-end side.
    
            https://bugs.webkit.org/show_bug.cgi?id=43479
    
            * public/WebDevToolsFrontendClient.h:
            (WebKit::WebDevToolsFrontendClient::sendFrontendLoaded):
            * src/WebDevToolsAgentImpl.cpp:
            (WebKit::WebDevToolsAgentImpl::attach):
            (WebKit::WebDevToolsAgentImpl::frontendLoaded):
            * src/WebDevToolsAgentImpl.h:
            * src/WebDevToolsFrontendImpl.cpp:
            (WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend):
            (WebKit::WebDevToolsFrontendImpl::frontendLoaded):
            * src/WebDevToolsFrontendImpl.h:
            * src/js/DevTools.js:
            (WebInspector.doLoadedDone):
            * src/js/Tests.js:
            (.uiTests.runTest):
    
    2010-08-05  Pavel Feldman  <pfeldman at chromium.org>
    
            Reviewed by Yury Semikhatsky.
    
            DevTools: get rid of delayed command dispatching on front-end side.
    
            https://bugs.webkit.org/show_bug.cgi?id=43479
    
            * DumpRenderTree/chromium/DRTDevToolsAgent.cpp:
            (DRTDevToolsAgent::detach):
            (DRTDevToolsAgent::frontendLoaded):
            * DumpRenderTree/chromium/DRTDevToolsAgent.h:
            * DumpRenderTree/chromium/DRTDevToolsClient.cpp:
            (DRTDevToolsClient::~DRTDevToolsClient):
            (DRTDevToolsClient::sendFrontendLoaded):
            * DumpRenderTree/chromium/DRTDevToolsClient.h:
    
    
    git-svn-id: http://svn.webkit.org/repository/webkit/trunk@64729 268f45cc-cd09-0410-ab3c-d52691b4dbfc

diff --git a/WebCore/inspector/front-end/InspectorBackendStub.js b/WebCore/inspector/front-end/InspectorBackendStub.js
index 1e8c88a..c87cb81 100644
--- a/WebCore/inspector/front-end/InspectorBackendStub.js
+++ b/WebCore/inspector/front-end/InspectorBackendStub.js
@@ -122,10 +122,7 @@ WebInspector.InspectorBackendStub.prototype = {
     sendMessageToBackend: function()
     {
         var message = JSON.stringify(Array.prototype.slice.call(arguments));
-        if (WebInspector._paramsObject && "page" in WebInspector._paramsObject)
-            WebInspector.socket.send(message);
-        else
-            InspectorFrontendHost.sendMessageToBackend(message);
+        InspectorFrontendHost.sendMessageToBackend(message);
     }
 }
 
diff --git a/WebKit/chromium/ChangeLog b/WebKit/chromium/ChangeLog
index d19f902..ca39537 100644
--- a/WebKit/chromium/ChangeLog
+++ b/WebKit/chromium/ChangeLog
@@ -1,3 +1,27 @@
+2010-08-05  Pavel Feldman  <pfeldman at chromium.org>
+
+        Reviewed by Yury Semikhatsky.
+
+        DevTools: get rid of delayed command dispatching on front-end side.
+
+        https://bugs.webkit.org/show_bug.cgi?id=43479
+
+        * public/WebDevToolsFrontendClient.h:
+        (WebKit::WebDevToolsFrontendClient::sendFrontendLoaded):
+        * src/WebDevToolsAgentImpl.cpp:
+        (WebKit::WebDevToolsAgentImpl::attach):
+        (WebKit::WebDevToolsAgentImpl::frontendLoaded):
+        * src/WebDevToolsAgentImpl.h:
+        * src/WebDevToolsFrontendImpl.cpp:
+        (WebKit::WebDevToolsFrontendImpl::dispatchOnInspectorFrontend):
+        (WebKit::WebDevToolsFrontendImpl::frontendLoaded):
+        * src/WebDevToolsFrontendImpl.h:
+        * src/js/DevTools.js:
+        (WebInspector.doLoadedDone):
+        * src/js/Tests.js:
+        (.uiTests.runTest):
+        (.):
+
 2010-08-02  Kenneth Russell  <kbr at google.com>
 
         Reviewed by Dimitri Glazkov.
diff --git a/WebKit/chromium/public/WebDevToolsFrontendClient.h b/WebKit/chromium/public/WebDevToolsFrontendClient.h
index b876c33..df34dc5 100644
--- a/WebKit/chromium/public/WebDevToolsFrontendClient.h
+++ b/WebKit/chromium/public/WebDevToolsFrontendClient.h
@@ -40,6 +40,7 @@ class WebDevToolsFrontendClient {
 public:
     WebDevToolsFrontendClient() { }
 
+    virtual void sendFrontendLoaded() { }
     virtual void sendMessageToBackend(const WebString&) { }
     virtual void sendDebuggerCommandToAgent(const WebString& command) { }
     virtual void sendDebuggerPauseScript() { }
diff --git a/WebKit/chromium/src/WebDevToolsAgentImpl.cpp b/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
index a95bb65..f95a2a5 100644
--- a/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
+++ b/WebKit/chromium/src/WebDevToolsAgentImpl.cpp
@@ -246,8 +246,6 @@ void WebDevToolsAgentImpl::attach()
             ic->injectedScriptHost()->setInjectedScriptSource("(" + source + ")");
         }
     }
-
-    setInspectorFrontendProxyToInspectorController();
     m_attached = true;
 }
 
@@ -266,6 +264,11 @@ void WebDevToolsAgentImpl::detach()
 
 void WebDevToolsAgentImpl::frontendLoaded()
 {
+    v8::HandleScope scope;
+    ScriptState* state = ScriptState::forContext(
+        v8::Local<v8::Context>::New(m_utilityContext));
+    InspectorController* ic = inspectorController();
+    ic->connectFrontend(ScriptObject(state, m_utilityContext->Global()));
 }
 
 void WebDevToolsAgentImpl::didNavigate()
@@ -344,15 +347,6 @@ void WebDevToolsAgentImpl::createInspectorFrontendProxy()
         WebCore::String(debuggerScriptJs.data(), debuggerScriptJs.length()));
 }
 
-void WebDevToolsAgentImpl::setInspectorFrontendProxyToInspectorController()
-{
-    v8::HandleScope scope;
-    ScriptState* state = ScriptState::forContext(
-        v8::Local<v8::Context>::New(m_utilityContext));
-    InspectorController* ic = inspectorController();
-    ic->connectFrontend(ScriptObject(state, m_utilityContext->Global()));
-}
-
 void WebDevToolsAgentImpl::setApuAgentEnabled(bool enabled)
 {
     m_apuAgentEnabled = enabled;
diff --git a/WebKit/chromium/src/WebDevToolsAgentImpl.h b/WebKit/chromium/src/WebDevToolsAgentImpl.h
index 8eecf2e..fb8eb70 100644
--- a/WebKit/chromium/src/WebDevToolsAgentImpl.h
+++ b/WebKit/chromium/src/WebDevToolsAgentImpl.h
@@ -111,7 +111,6 @@ private:
     void compileUtilityScripts();
     void initDevToolsAgentHost();
     void createInspectorFrontendProxy();
-    void setInspectorFrontendProxyToInspectorController();
     void setApuAgentEnabled(bool enabled);
 
     WebCore::InspectorController* inspectorController();
diff --git a/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp b/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp
index a0c8eba..c1b09c4 100644
--- a/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp
+++ b/WebKit/chromium/src/WebDevToolsFrontendImpl.cpp
@@ -119,27 +119,6 @@ WebDevToolsFrontendImpl::~WebDevToolsFrontendImpl()
 
 void WebDevToolsFrontendImpl::dispatchOnInspectorFrontend(const WebString& message)
 {
-    if (!m_loaded) {
-        m_pendingIncomingMessages.append(message);
-        return;
-    }
-    executeScript(message);
-}
-
-void WebDevToolsFrontendImpl::frontendLoaded()
-{
-    m_loaded = true;
-
-    for (Vector<WebString>::iterator it = m_pendingIncomingMessages.begin();
-         it != m_pendingIncomingMessages.end();
-         ++it) {
-        executeScript(*it);
-    }
-    m_pendingIncomingMessages.clear();
-}
-
-void WebDevToolsFrontendImpl::executeScript(const WebString& message)
-{
     WebFrameImpl* frame = m_webViewImpl->mainFrameImpl();
     v8::HandleScope scope;
     v8::Handle<v8::Context> frameContext = V8Proxy::context(frame->frame());
@@ -154,6 +133,11 @@ void WebDevToolsFrontendImpl::executeScript(const WebString& message)
     function->Call(frameContext->Global(), args.size(), args.data());
 }
 
+void WebDevToolsFrontendImpl::frontendLoaded()
+{
+    m_client->sendFrontendLoaded();
+}
+
 v8::Handle<v8::Value> WebDevToolsFrontendImpl::jsDebuggerPauseScript(const v8::Arguments& args)
 {
     WebDevToolsFrontendImpl* frontend = static_cast<WebDevToolsFrontendImpl*>(v8::External::Cast(*args.Data())->Value());
diff --git a/WebKit/chromium/src/WebDevToolsFrontendImpl.h b/WebKit/chromium/src/WebDevToolsFrontendImpl.h
index c1c4786..f03c54e 100644
--- a/WebKit/chromium/src/WebDevToolsFrontendImpl.h
+++ b/WebKit/chromium/src/WebDevToolsFrontendImpl.h
@@ -70,15 +70,12 @@ public:
     void frontendLoaded();
 
 private:
-    void executeScript(const WebString& message);
-
     static v8::Handle<v8::Value> jsDebuggerPauseScript(const v8::Arguments& args);
 
     WebKit::WebViewImpl* m_webViewImpl;
     WebKit::WebDevToolsFrontendClient* m_client;
     String m_applicationLocale;
     bool m_loaded;
-    Vector<WebString> m_pendingIncomingMessages;
 };
 
 } // namespace WebKit
diff --git a/WebKit/chromium/src/js/DevTools.js b/WebKit/chromium/src/js/DevTools.js
index 8e07a6a..2faa69f 100644
--- a/WebKit/chromium/src/js/DevTools.js
+++ b/WebKit/chromium/src/js/DevTools.js
@@ -88,13 +88,15 @@ var context = {};  // Used by WebCore's inspector routines.
     }
     if ("page" in WebInspector._paramsObject) {
         WebInspector.socket = new WebSocket("ws://" + window.location.host + "/devtools/page/" + WebInspector._paramsObject.page);
-        WebInspector.socket.onmessage = function(message) { eval(message.data); }
+        WebInspector.socket.onmessage = function(message) { devtools$$dispatch(message.data); }
         WebInspector.socket.onerror = function(error) { console.err(error); }
         WebInspector.socket.onopen = function() {
             WebInspector.socketOpened = true;
             if (WebInspector.loadedDone)
                 WebInspector.doLoadedDone();
         };
+        InspectorFrontendHost.sendMessageToBackend = WebInspector.socket.send.bind(WebInspector.socket);
+        InspectorFrontendHost.loaded = WebInspector.socket.send.bind(WebInspector.socket, "loaded");
     }
 })();
 ///////////////////////////////////////////////////////////////////////////////
@@ -111,7 +113,6 @@ WebInspector.loaded = function()
     Preferences.debuggerAlwaysEnabled = true;
     Preferences.profilerAlwaysEnabled = true;
     Preferences.canEditScriptSource = true;
-    
     if ("page" in WebInspector._paramsObject) {
         WebInspector.loadedDone = true;
         if (WebInspector.socketOpened)
@@ -123,7 +124,6 @@ WebInspector.loaded = function()
 
 WebInspector.doLoadedDone = function() {
     oldLoaded.call(this);
-    InspectorFrontendHost.loaded();
 }
 
 devtools.domContentLoaded = function()
diff --git a/WebKit/chromium/src/js/Tests.js b/WebKit/chromium/src/js/Tests.js
index b5bce28..ac20040 100644
--- a/WebKit/chromium/src/js/Tests.js
+++ b/WebKit/chromium/src/js/Tests.js
@@ -1845,8 +1845,24 @@ uiTests.runAllTests = function()
  */
 uiTests.runTest = function(name)
 {
-    new TestSuite().runTest(name);
+    if (uiTests._populatedInterface)
+        new TestSuite().runTest(name);
+    else
+        uiTests._pendingTestName = name;
 };
 
+(function() {
+var oldShowElementsPanel = WebInspector.showElementsPanel;
+WebInspector.showElementsPanel = function()
+{
+    oldShowElementsPanel.call(this);
+    uiTests._populatedInterface = true;
+    var name = uiTests._pendingTestName;
+    delete uiTests._pendingTestName;
+    if (name)
+        new TestSuite().runTest(name);
+}
+
+})();
 
 }
diff --git a/WebKitTools/ChangeLog b/WebKitTools/ChangeLog
index 4a499fd..74a7dad 100644
--- a/WebKitTools/ChangeLog
+++ b/WebKitTools/ChangeLog
@@ -1,3 +1,20 @@
+2010-08-05  Pavel Feldman  <pfeldman at chromium.org>
+
+        Reviewed by Yury Semikhatsky.
+
+        DevTools: get rid of delayed command dispatching on front-end side.
+
+        https://bugs.webkit.org/show_bug.cgi?id=43479
+
+        * DumpRenderTree/chromium/DRTDevToolsAgent.cpp:
+        (DRTDevToolsAgent::detach):
+        (DRTDevToolsAgent::frontendLoaded):
+        * DumpRenderTree/chromium/DRTDevToolsAgent.h:
+        * DumpRenderTree/chromium/DRTDevToolsClient.cpp:
+        (DRTDevToolsClient::~DRTDevToolsClient):
+        (DRTDevToolsClient::sendFrontendLoaded):
+        * DumpRenderTree/chromium/DRTDevToolsClient.h:
+
 2010-08-04  Kenichi Ishibashi  <bashi at google.com>
 
         Reviewed by Shinichiro Hamaji.
diff --git a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp
index 9dbba49..d1d2e16 100644
--- a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp
@@ -120,7 +120,7 @@ void DRTDevToolsAgent::attach(DRTDevToolsClient* client)
         agent->attach();
 }
 
-void DRTDevToolsAgent::detach(DRTDevToolsClient* client)
+void DRTDevToolsAgent::detach()
 {
     ASSERT(m_drtDevToolsClient);
     WebDevToolsAgent* agent = webDevToolsAgent();
@@ -129,6 +129,12 @@ void DRTDevToolsAgent::detach(DRTDevToolsClient* client)
     m_drtDevToolsClient = 0;
 }
 
+void DRTDevToolsAgent::frontendLoaded() {
+    WebDevToolsAgent* agent = webDevToolsAgent();
+    if (agent)
+        agent->frontendLoaded();
+}
+
 bool DRTDevToolsAgent::setTimelineProfilingEnabled(bool enabled)
 {
     WebDevToolsAgent* agent = webDevToolsAgent();
diff --git a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.h b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.h
index bf69c19..a2826d0 100644
--- a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.h
+++ b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsAgent.h
@@ -67,7 +67,8 @@ public:
     void asyncCall(const DRTDevToolsCallArgs&);
 
     void attach(DRTDevToolsClient*);
-    void detach(DRTDevToolsClient*);
+    void detach();
+    void frontendLoaded();
 
     bool evaluateInWebInspector(long callID, const std::string& script);
     bool setTimelineProfilingEnabled(bool enable);
diff --git a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.cpp b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.cpp
index e5b5562..c5eeff9 100644
--- a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.cpp
+++ b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.cpp
@@ -61,7 +61,12 @@ DRTDevToolsClient::~DRTDevToolsClient()
     // m_drtDevToolsAgent and we should clean pending requests a bit earlier.
     m_callMethodFactory.RevokeAll();
     if (m_drtDevToolsAgent)
-        m_drtDevToolsAgent->detach(this);
+        m_drtDevToolsAgent->detach();
+}
+
+void DRTDevToolsClient::sendFrontendLoaded() {
+    if (m_drtDevToolsAgent)
+        m_drtDevToolsAgent->frontendLoaded();
 }
 
 void DRTDevToolsClient::sendMessageToBackend(const WebString& data)
diff --git a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.h b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.h
index 691e1d5..07a6187 100644
--- a/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.h
+++ b/WebKitTools/DumpRenderTree/chromium/DRTDevToolsClient.h
@@ -55,6 +55,7 @@ public:
     virtual ~DRTDevToolsClient();
 
     // WebDevToolsFrontendClient implementation
+    virtual void sendFrontendLoaded();
     virtual void sendMessageToBackend(const WebKit::WebString&);
     virtual void sendDebuggerCommandToAgent(const WebKit::WebString& command);
 

-- 
WebKit Debian packaging



More information about the Pkg-webkit-commits mailing list