2011-02-22 Ilya Tikhonovsky <loislo@chromium.org>
authorloislo@chromium.org <loislo@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Feb 2011 15:28:20 +0000 (15:28 +0000)
committerloislo@chromium.org <loislo@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 22 Feb 2011 15:28:20 +0000 (15:28 +0000)
        Reviewed by NOBODY (OOPS!).

        Web Inspector: flakyness of inspector tests.
        https://bugs.webkit.org/show_bug.cgi?id=54729

        As far as we have the protocol with sequence numbers we can simplify test harness support
        and drop out chomium specific methods.

        Source/WebCore:
        * inspector/CodeGeneratorInspector.pm:
        * inspector/front-end/TestController.js:
        (WebInspector.TestController):
        (WebInspector.TestController.prototype.notifyDone):
        (WebInspector.TestController.prototype.runAfterPendingDispatches):
        (WebInspector.TestController.prototype._evaluateForTestInFrontend):
        * inspector/front-end/inspector.js:
        (WebInspector.dispatch):

        Source/WebKit/chromium:
        * src/js/DevTools.js:

        LayoutTests:
        * http/tests/inspector/inspector-test.js:
        (initialize_InspectorTest.InspectorTest.runAfterPendingDispatches):

        Tools:
        * DumpRenderTree/DumpRenderTree.gypi:
        * DumpRenderTree/chromium/DRTDevToolsAgent.cpp:
        (DRTDevToolsAgent::sendMessageToInspectorFrontend):
        (DRTDevToolsAgent::runtimePropertyChanged):
        (DRTDevToolsAgent::asyncCall):
        (DRTDevToolsAgent::call):
        * DumpRenderTree/chromium/DRTDevToolsAgent.h:
        * DumpRenderTree/chromium/DRTDevToolsCallArgs.cpp: Removed.
        * DumpRenderTree/chromium/DRTDevToolsCallArgs.h: Removed.
        * DumpRenderTree/chromium/DRTDevToolsClient.cpp:
        (DRTDevToolsClient::sendMessageToBackend):
        (DRTDevToolsClient::asyncCall):
        (DRTDevToolsClient::call):
        * DumpRenderTree/chromium/DRTDevToolsClient.h:

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

16 files changed:
LayoutTests/ChangeLog
LayoutTests/http/tests/inspector/inspector-test.js
Source/WebCore/ChangeLog
Source/WebCore/inspector/CodeGeneratorInspector.pm
Source/WebCore/inspector/front-end/TestController.js
Source/WebCore/inspector/front-end/inspector.js
Source/WebKit/chromium/ChangeLog
Source/WebKit/chromium/src/js/DevTools.js
Tools/ChangeLog
Tools/DumpRenderTree/DumpRenderTree.gypi
Tools/DumpRenderTree/chromium/DRTDevToolsAgent.cpp
Tools/DumpRenderTree/chromium/DRTDevToolsAgent.h
Tools/DumpRenderTree/chromium/DRTDevToolsCallArgs.cpp [deleted file]
Tools/DumpRenderTree/chromium/DRTDevToolsCallArgs.h [deleted file]
Tools/DumpRenderTree/chromium/DRTDevToolsClient.cpp
Tools/DumpRenderTree/chromium/DRTDevToolsClient.h

index 7f251224ba58bb753745398e61eefd1b6588c641..7f13caee2efda8e046452b56d959ba3a186f6274 100644 (file)
@@ -1,3 +1,16 @@
+2011-02-22  Ilya Tikhonovsky  <loislo@chromium.org>
+
+        Reviewed by Pavel Feldman.
+
+        Web Inspector: flakyness of inspector tests.
+        https://bugs.webkit.org/show_bug.cgi?id=54729
+
+        As far as we have the protocol with sequence numbers we can simplify test harness support
+        and drop out chomium specific methods.
+
+        * http/tests/inspector/inspector-test.js:
+        (initialize_InspectorTest.InspectorTest.runAfterPendingDispatches):
+
 2011-02-22  Mario Sanchez Prada  <msanchez@igalia.com>
 
         Reviewed by Martin Robinson.
index 91af805927505da218ce325c2e0e88e8cba85a25..b10395870e908dbac84d256b6130ed168d2f3bb4 100644 (file)
@@ -129,8 +129,7 @@ InspectorTest.pageReloaded = function()
 InspectorTest.runAfterPendingDispatches = function(callback)
 {
     callback = InspectorTest.safeWrap(callback);
-
-    WebInspector.TestController.prototype.runAfterPendingDispatches(callback);
+    InspectorBackend.runAfterPendingDispatches(callback);
 }
 
 InspectorTest.createKeyEvent = function(keyIdentifier)
index 0eccd4b6ad0a4adb619b4190745734734a55a625..46dabdec511f8fdf998b9ab1b0ece28f30de9c6c 100644 (file)
@@ -1,3 +1,22 @@
+2011-02-22  Ilya Tikhonovsky  <loislo@chromium.org>
+
+        Reviewed by Pavel Feldman.
+
+        Web Inspector: flakyness of inspector tests.
+        https://bugs.webkit.org/show_bug.cgi?id=54729
+
+        As far as we have the protocol with sequence numbers we can simplify test harness support
+        and drop out chomium specific methods.
+
+        * inspector/CodeGeneratorInspector.pm:
+        * inspector/front-end/TestController.js:
+        (WebInspector.TestController):
+        (WebInspector.TestController.prototype.notifyDone):
+        (WebInspector.TestController.prototype.runAfterPendingDispatches):
+        (WebInspector.TestController.prototype._evaluateForTestInFrontend):
+        * inspector/front-end/inspector.js:
+        (WebInspector.dispatch):
+
 2011-02-22  Mario Sanchez Prada  <msanchez@igalia.com>
 
         Reviewed by Martin Robinson.
index 69dc06d35732d88c2936506b34849a2d64cb7413..806d3883d03591dc2663a8d3d49fe98ff6e43d31 100644 (file)
@@ -711,6 +711,7 @@ $licenseTemplate
 InspectorBackendStub = function()
 {
     this._lastCallbackId = 1;
+    this._pendingResponsesCount = 0;
     this._callbacks = {};
     this._domainDispatchers = {};
 $JSStubs
@@ -720,22 +721,11 @@ InspectorBackendStub.prototype = {
     _wrap: function(callback)
     {
         var callbackId = this._lastCallbackId++;
+        ++this._pendingResponsesCount;
         this._callbacks[callbackId] = callback || function() {};
         return callbackId;
     },
 
-    _processResponse: function(callbackId, args)
-    {
-        var callback = this._callbacks[callbackId];
-        callback.apply(null, args);
-        delete this._callbacks[callbackId];
-    },
-
-    _removeResponseCallbackEntry: function(callbackId)
-    {
-        delete this._callbacks[callbackId];
-    },
-
     _registerDelegate: function(commandInfo)
     {
         var commandObject = JSON.parse(commandInfo);
@@ -799,11 +789,16 @@ InspectorBackendStub.prototype = {
 
         if ("seq" in messageObject) { // just a response for some request
             if (messageObject.success)
-                this._processResponse(messageObject.seq, arguments);
-            else {
-                this._removeResponseCallbackEntry(messageObject.seq)
+                this._callbacks[messageObject.seq].apply(null, arguments);
+            else
                 this.reportProtocolError(messageObject);
-            }
+
+            --this._pendingResponsesCount;
+            delete this._callbacks[messageObject.seq];
+
+            if (this._scripts && !this._pendingResponsesCount)
+                this.runAfterPendingDispatches();
+
             return;
         }
 
@@ -826,7 +821,22 @@ InspectorBackendStub.prototype = {
         console.error("Protocol Error: InspectorBackend request with seq = " + messageObject.seq + " failed.");
         for (var i = 0; i < messageObject.errors.length; ++i)
             console.error("    " + messageObject.errors[i]);
-        this._removeResponseCallbackEntry(messageObject.seq);
+    },
+
+    runAfterPendingDispatches: function(script)
+    {
+        if (!this._scripts)
+            this._scripts = [];
+
+        if (script)
+            this._scripts.push(script);
+
+        if (!this._pendingResponsesCount) {
+            var scripts = this._scripts;
+            this._scripts = []
+            for (var id = 0; id < scripts.length; ++id)
+                 scripts[id].call(this);
+        }
     }
 }
 
index 0967027b740d3b7a208a0913f7a2543b5ad5e2ee..e6783f9b2eb8ff210b321a64217d439fb8132cb1 100644 (file)
  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-WebInspector.TestController = function(callId)
+WebInspector.TestController = function()
 {
-    this._callId = callId;
-    this._waitUntilDone = false;
-    this.results = [];
 }
 
 WebInspector.TestController.prototype = {
-    waitUntilDone: function()
+    notifyDone: function(callId, result)
     {
-        this._waitUntilDone = true;
-    },
-
-    notifyDone: function(result)
-    {
-        if (typeof result === "undefined" && this.results.length)
-            result = this.results;
         var message = typeof result === "undefined" ? "\"<undefined>\"" : JSON.stringify(result);
-        InspectorAgent.didEvaluateForTestInFrontend(this._callId, message);
-    },
-
-    runAfterPendingDispatches: function(callback)
-    {
-        if (WebInspector.pendingDispatches === 0) {
-            callback();
-            return;
-        }
-        setTimeout(this.runAfterPendingDispatches.bind(this), 0, callback);
+        InspectorAgent.didEvaluateForTestInFrontend(callId, message);
     }
 }
 
 WebInspector.evaluateForTestInFrontend = function(callId, script)
 {
-    var controller = new WebInspector.TestController(callId);
     function invokeMethod()
     {
         try {
@@ -71,11 +51,10 @@ WebInspector.evaluateForTestInFrontend = function(callId, script)
             else
                 result = window.eval(script);
 
-            if (!controller._waitUntilDone)
-                controller.notifyDone(result);
+            WebInspector.TestController.prototype.notifyDone(callId, result);
         } catch (e) {
-            controller.notifyDone(e.toString());
+            WebInspector.testController.prototype.notifyDone(callId, e.toString());
         }
     }
-    controller.runAfterPendingDispatches(invokeMethod);
+    InspectorBackend.runAfterPendingDispatches(invokeMethod);
 }
index 16aae1e9c9e5f7e51d0deaedbcba769df0bc9a05..4eb9a70f2255ebe1620c8ded92484897e9d00f51 100644 (file)
@@ -592,13 +592,7 @@ window.addEventListener("DOMContentLoaded", windowLoaded, false);
 WebInspector.dispatch = function(message) {
     // We'd like to enforce asynchronous interaction between the inspector controller and the frontend.
     // This is important to LayoutTests.
-    function delayDispatch()
-    {
-        InspectorBackend.dispatch(message);
-        WebInspector.pendingDispatches--;
-    }
-    WebInspector.pendingDispatches++;
-    setTimeout(delayDispatch, 0);
+    setTimeout(InspectorBackend.dispatch.bind(InspectorBackend), 0, message);
 }
 
 WebInspector.dispatchMessageFromBackend = function(messageObject)
index 00c8a444c6046ecf96731c8cd6f23f0bf5f5e266..a1d42d6364647bf14a7312f4063e92845a3ab9e4 100644 (file)
@@ -1,3 +1,15 @@
+2011-02-22  Ilya Tikhonovsky  <loislo@chromium.org>
+
+        Reviewed by Pavel Feldman.
+
+        Web Inspector: flakyness of inspector tests.
+        https://bugs.webkit.org/show_bug.cgi?id=54729
+
+        As far as we have the protocol with sequence numbers we can simplify test harness support
+        and drop out chomium specific methods.
+
+        * src/js/DevTools.js:
+
 2011-02-21  Pavel Podivilov  <podivilov@chromium.org>
 
         Reviewed by Pavel Feldman.
index 3d61be79f4d2f89aa83f3e266f38787645979a85..03c72d20220ff3a859d47606759f9dfaf5de2357 100644 (file)
@@ -130,26 +130,6 @@ WebInspector.openLinkExternallyLabel = function()
 
 
 
-///////////////////////////////////////////
-// Chromium layout test harness support. //
-///////////////////////////////////////////
-
-WebInspector.runAfterPendingDispatchesQueue = [];
-
-WebInspector.TestController.prototype.runAfterPendingDispatches = function(callback)
-{
-    WebInspector.runAfterPendingDispatchesQueue.push(callback);
-};
-
-WebInspector.queuesAreEmpty = function()
-{
-    var copy = this.runAfterPendingDispatchesQueue.slice();
-    this.runAfterPendingDispatchesQueue = [];
-    for (var i = 0; i < copy.length; ++i)
-        copy[i].call(this);
-};
-
-
 /////////////////////////////
 // Chromium theme support. //
 /////////////////////////////
index a35c085af0d6c3c498c482bec2bac729ce8fb1e2..b2755918b296ea64616c600264977fefca1f05a3 100644 (file)
@@ -1,3 +1,28 @@
+2011-02-22  Ilya Tikhonovsky  <loislo@chromium.org>
+
+        Reviewed by Pavel Feldman.
+
+        Web Inspector: flakyness of inspector tests.
+        https://bugs.webkit.org/show_bug.cgi?id=54729
+
+        As far as we have the protocol with sequence numbers we can simplify test harness support
+        and drop out chomium specific methods.
+
+        * DumpRenderTree/DumpRenderTree.gypi:
+        * DumpRenderTree/chromium/DRTDevToolsAgent.cpp:
+        (DRTDevToolsAgent::sendMessageToInspectorFrontend):
+        (DRTDevToolsAgent::runtimePropertyChanged):
+        (DRTDevToolsAgent::asyncCall):
+        (DRTDevToolsAgent::call):
+        * DumpRenderTree/chromium/DRTDevToolsAgent.h:
+        * DumpRenderTree/chromium/DRTDevToolsCallArgs.cpp: Removed.
+        * DumpRenderTree/chromium/DRTDevToolsCallArgs.h: Removed.
+        * DumpRenderTree/chromium/DRTDevToolsClient.cpp:
+        (DRTDevToolsClient::sendMessageToBackend):
+        (DRTDevToolsClient::asyncCall):
+        (DRTDevToolsClient::call):
+        * DumpRenderTree/chromium/DRTDevToolsClient.h:
+
 2011-02-22  Andras Becsi  <abecsi@webkit.org>
 
         Reviewed by Laszlo Gombos.
index 3d21be73206ad8ae7a4a15ac2cbf023ce7303344..a3f05204c6f62b61117abc3a7b7c62d7e0f6a429 100644 (file)
@@ -11,8 +11,6 @@
             'chromium/CppVariant.h',
             'chromium/DRTDevToolsAgent.cpp',
             'chromium/DRTDevToolsAgent.h',
-            'chromium/DRTDevToolsCallArgs.cpp',
-            'chromium/DRTDevToolsCallArgs.h',
             'chromium/DRTDevToolsClient.cpp',
             'chromium/DRTDevToolsClient.h',
             'chromium/DumpRenderTree.cpp',
index 78c86e71fc7f95327640e6c40f6fe29dd7577fd2..76aa781c39752a8110ba3c1f25513589377619d4 100644 (file)
 #include "config.h"
 #include "DRTDevToolsAgent.h"
 
-#include "DRTDevToolsCallArgs.h"
 #include "DRTDevToolsClient.h"
 
 #include "WebCString.h"
 #include "WebDevToolsAgent.h"
-#include "WebString.h"
 #include "WebView.h"
 #include "webkit/support/webkit_support.h"
 
@@ -63,13 +61,13 @@ void DRTDevToolsAgent::setWebView(WebView* webView)
     m_webView = webView;
 }
 
-void DRTDevToolsAgent::sendMessageToInspectorFrontend(const WebKit::WebString& data)
+void DRTDevToolsAgent::sendMessageToInspectorFrontend(const WebString& data)
 {
     if (m_drtDevToolsClient)
-         m_drtDevToolsClient->asyncCall(DRTDevToolsCallArgs(data));
+         m_drtDevToolsClient->asyncCall(data);
 }
 
-void DRTDevToolsAgent::runtimePropertyChanged(const WebKit::WebString& name, const WebKit::WebString& value)
+void DRTDevToolsAgent::runtimePropertyChanged(const WebString& name, const WebString& value)
 {
     // FIXME: Implement.
 }
@@ -84,18 +82,16 @@ WebDevToolsAgentClient::WebKitClientMessageLoop* DRTDevToolsAgent::createClientM
     return webkit_support::CreateDevToolsMessageLoop();
 }
 
-void DRTDevToolsAgent::asyncCall(const DRTDevToolsCallArgs& args)
+void DRTDevToolsAgent::asyncCall(const WebString& args)
 {
     postTask(new AsyncCallTask(this, args));
 }
 
-void DRTDevToolsAgent::call(const DRTDevToolsCallArgs &args)
+void DRTDevToolsAgent::call(const WebString& args)
 {
     WebDevToolsAgent* agent = webDevToolsAgent();
     if (agent)
-        agent->dispatchOnInspectorBackend(args.m_data);
-    if (DRTDevToolsCallArgs::callsCount() == 1 && m_drtDevToolsClient)
-        m_drtDevToolsClient->allMessagesProcessed();
+        agent->dispatchOnInspectorBackend(args);
 }
 
 void DRTDevToolsAgent::delayedFrontendLoaded()
index 665435cfa6046a0709a37c23d73efd4e93829e41..4cbc8bc07a43170cf85bd62d6841a438ad1c672b 100644 (file)
@@ -31,9 +31,9 @@
 #ifndef DRTDevToolsAgent_h
 #define DRTDevToolsAgent_h
 
-#include "DRTDevToolsCallArgs.h"
 #include "Task.h"
 #include "WebDevToolsAgentClient.h"
+#include "WebString.h"
 #include <wtf/HashMap.h>
 #include <wtf/Noncopyable.h>
 
@@ -41,7 +41,6 @@ namespace WebKit {
 
 class WebCString;
 class WebDevToolsAgent;
-class WebString;
 class WebView;
 struct WebDevToolsMessageData;
 
@@ -65,7 +64,7 @@ public:
     virtual WebKit::WebCString debuggerScriptSource();
     virtual WebKitClientMessageLoop* createClientMessageLoop();
 
-    void asyncCall(const DRTDevToolsCallArgs&);
+    void asyncCall(const WebKit::WebString& args);
 
     void attach(DRTDevToolsClient*);
     void detach();
@@ -76,18 +75,18 @@ public:
     TaskList* taskList() { return &m_taskList; }
 
 private:
-    void call(const DRTDevToolsCallArgs&);
+    void call(const WebKit::WebString& args);
     void delayedFrontendLoaded();
     static void dispatchMessageLoop();
     WebKit::WebDevToolsAgent* webDevToolsAgent();
 
     class AsyncCallTask: public MethodTask<DRTDevToolsAgent> {
     public:
-        AsyncCallTask(DRTDevToolsAgent* object, const DRTDevToolsCallArgs& args)
+        AsyncCallTask(DRTDevToolsAgent* object, const WebKit::WebString& args)
             : MethodTask<DRTDevToolsAgent>(object), m_args(args) {}
         virtual void runIfValid() { m_object->call(m_args); }
     private:
-        DRTDevToolsCallArgs m_args;
+        WebKit::WebString m_args;
     };
 
     struct DelayedFrontendLoadedTask: public MethodTask<DRTDevToolsAgent> {
diff --git a/Tools/DumpRenderTree/chromium/DRTDevToolsCallArgs.cpp b/Tools/DumpRenderTree/chromium/DRTDevToolsCallArgs.cpp
deleted file mode 100644 (file)
index dacd6f7..0000000
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * 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 "DRTDevToolsCallArgs.h"
-
-// static
-int DRTDevToolsCallArgs::m_callsCount = 0;
-
diff --git a/Tools/DumpRenderTree/chromium/DRTDevToolsCallArgs.h b/Tools/DumpRenderTree/chromium/DRTDevToolsCallArgs.h
deleted file mode 100644 (file)
index a548159..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * 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.
- */
-
-#ifndef DRTDevToolsCallArgs_h
-#define DRTDevToolsCallArgs_h
-
-#include "WebString.h"
-#include <wtf/Assertions.h>
-
-class DRTDevToolsCallArgs {
-public:
-    DRTDevToolsCallArgs(const WebKit::WebString& data)
-        : m_data(data)
-    {
-        ++m_callsCount;
-    }
-
-    DRTDevToolsCallArgs(const DRTDevToolsCallArgs& args)
-        : m_data(args.m_data)
-    {
-        ++m_callsCount;
-    }
-
-    ~DRTDevToolsCallArgs()
-    {
-        --m_callsCount;
-        ASSERT(m_callsCount >= 0);
-    }
-
-    static int callsCount() { return m_callsCount; }
-
-    WebKit::WebString m_data;
-
-private:
-    static int m_callsCount;
-};
-
-#endif // DRTDevToolsCallArgs_h
index acccf18d822ac7b7604683865bf287b1cba367c0..27f0091860ede442077ca114aaad12a105a5dacf 100644 (file)
 #include "DRTDevToolsClient.h"
 
 #include "DRTDevToolsAgent.h"
-#include "DRTDevToolsCallArgs.h"
 
 #include "WebDevToolsAgent.h"
 #include "WebDevToolsFrontend.h"
 #include "WebFrame.h"
 #include "WebScriptSource.h"
-#include "WebString.h"
 #include "WebView.h"
 #include "webkit/support/webkit_support.h"
 
@@ -76,7 +74,7 @@ void DRTDevToolsClient::sendFrontendLoaded() {
 void DRTDevToolsClient::sendMessageToBackend(const WebString& data)
 {
     if (m_drtDevToolsAgent)
-        m_drtDevToolsAgent->asyncCall(DRTDevToolsCallArgs(data));
+        m_drtDevToolsAgent->asyncCall(data);
 }
 
 void DRTDevToolsClient::sendDebuggerCommandToAgent(const WebString& command)
@@ -104,21 +102,13 @@ void DRTDevToolsClient::undockWindow()
     // Not implemented.
 }
 
-void DRTDevToolsClient::asyncCall(const DRTDevToolsCallArgs& args)
+void DRTDevToolsClient::asyncCall(const WebString& args)
 {
     postTask(new AsyncCallTask(this, args));
 }
 
-void DRTDevToolsClient::call(const DRTDevToolsCallArgs& args)
+void DRTDevToolsClient::call(const WebString& args)
 {
-    m_webDevToolsFrontend->dispatchOnInspectorFrontend(args.m_data);
-    if (DRTDevToolsCallArgs::callsCount() == 1)
-        allMessagesProcessed();
+    m_webDevToolsFrontend->dispatchOnInspectorFrontend(args);
 }
 
-void DRTDevToolsClient::allMessagesProcessed()
-{
-    m_webView->mainFrame()->executeScript(
-        WebKit::WebScriptSource(WebString::fromUTF8(
-            "if (window.WebInspector && WebInspector.queuesAreEmpty) WebInspector.queuesAreEmpty();")));
-}
index 0cba51c9374ea2a6e839f5786c34eff0dcf5dd0c..8a93ee03fa2cdcb2b3f2e905c373dccd187318e5 100644 (file)
 #ifndef DRTDevToolsClient_h
 #define DRTDevToolsClient_h
 
-#include "DRTDevToolsCallArgs.h"
 #include "Task.h"
 #include "WebDevToolsFrontendClient.h"
+#include "WebString.h"
 #include <wtf/Noncopyable.h>
 #include <wtf/OwnPtr.h>
-
 namespace WebKit {
 
 class WebDevToolsFrontend;
 struct WebDevToolsMessageData;
-class WebString;
 class WebView;
 
 } // namespace WebKit
@@ -65,20 +63,20 @@ public:
     virtual void dockWindow();
     virtual void undockWindow();
 
-    void asyncCall(const DRTDevToolsCallArgs&);
+    void asyncCall(const WebKit::WebString& args);
 
     void allMessagesProcessed();
     TaskList* taskList() { return &m_taskList; }
 
  private:
-    void call(const DRTDevToolsCallArgs&);
+    void call(const WebKit::WebString& args);
     class AsyncCallTask: public MethodTask<DRTDevToolsClient> {
     public:
-        AsyncCallTask(DRTDevToolsClient* object, const DRTDevToolsCallArgs& args)
+        AsyncCallTask(DRTDevToolsClient* object, const WebKit::WebString& args)
             : MethodTask<DRTDevToolsClient>(object), m_args(args) {}
         virtual void runIfValid() { m_object->call(m_args); }
     private:
-        DRTDevToolsCallArgs m_args;
+        WebKit::WebString m_args;
     };
 
     TaskList m_taskList;