Title: [90398] trunk/Source/WebKit/chromium
Revision
90398
Author
[email protected]
Date
2011-07-05 09:01:45 -0700 (Tue, 05 Jul 2011)

Log Message

2011-07-05  Yury Semikhatsky  <[email protected]>

        [Chromium] Web Inspector: extend WebSharedWorker with inspector transport methods
        https://bugs.webkit.org/show_bug.cgi?id=63942

        Added methods for connecting inspector to shared worker and for passing
        messages between shared worker inspector and corresponding inspector frontend.

        Reviewed by Pavel Feldman.

        * public/WebCommonWorkerClient.h:
        (WebKit::WebCommonWorkerClient::dispatchDevToolsMessage):
        * public/WebSharedWorker.h:
        (WebKit::WebSharedWorker::attachDevTools):
        (WebKit::WebSharedWorker::detachDevTools):
        (WebKit::WebSharedWorker::dispatchDevToolsMessage):
        * public/WebWorkerClient.h:
        * src/WebSharedWorkerImpl.cpp:
        (WebKit::connectToWorkerContextInspectorTask):
        (WebKit::WebSharedWorkerImpl::attachDevTools):
        (WebKit::disconnectFromWorkerContextInspectorTask):
        (WebKit::WebSharedWorkerImpl::detachDevTools):
        (WebKit::dispatchOnInspectorBackendTask):
        (WebKit::WebSharedWorkerImpl::dispatchDevToolsMessage):
        * src/WebSharedWorkerImpl.h:
        * src/WebWorkerBase.cpp:
        (WebKit::WebWorkerBase::postMessageToPageInspectorTask):

Modified Paths

Diff

Modified: trunk/Source/WebKit/chromium/ChangeLog (90397 => 90398)


--- trunk/Source/WebKit/chromium/ChangeLog	2011-07-05 15:35:19 UTC (rev 90397)
+++ trunk/Source/WebKit/chromium/ChangeLog	2011-07-05 16:01:45 UTC (rev 90398)
@@ -1,3 +1,31 @@
+2011-07-05  Yury Semikhatsky  <[email protected]>
+
+        [Chromium] Web Inspector: extend WebSharedWorker with inspector transport methods
+        https://bugs.webkit.org/show_bug.cgi?id=63942
+
+        Added methods for connecting inspector to shared worker and for passing
+        messages between shared worker inspector and corresponding inspector frontend.
+
+        Reviewed by Pavel Feldman.
+
+        * public/WebCommonWorkerClient.h:
+        (WebKit::WebCommonWorkerClient::dispatchDevToolsMessage):
+        * public/WebSharedWorker.h:
+        (WebKit::WebSharedWorker::attachDevTools):
+        (WebKit::WebSharedWorker::detachDevTools):
+        (WebKit::WebSharedWorker::dispatchDevToolsMessage):
+        * public/WebWorkerClient.h:
+        * src/WebSharedWorkerImpl.cpp:
+        (WebKit::connectToWorkerContextInspectorTask):
+        (WebKit::WebSharedWorkerImpl::attachDevTools):
+        (WebKit::disconnectFromWorkerContextInspectorTask):
+        (WebKit::WebSharedWorkerImpl::detachDevTools):
+        (WebKit::dispatchOnInspectorBackendTask):
+        (WebKit::WebSharedWorkerImpl::dispatchDevToolsMessage):
+        * src/WebSharedWorkerImpl.h:
+        * src/WebWorkerBase.cpp:
+        (WebKit::WebWorkerBase::postMessageToPageInspectorTask):
+
 2011-07-01  Kent Tamura  <[email protected]>
 
         [Chromium] Rebaseline for fast/forms/input-file-re-render.html

Modified: trunk/Source/WebKit/chromium/public/WebCommonWorkerClient.h (90397 => 90398)


--- trunk/Source/WebKit/chromium/public/WebCommonWorkerClient.h	2011-07-05 15:35:19 UTC (rev 90397)
+++ trunk/Source/WebKit/chromium/public/WebCommonWorkerClient.h	2011-07-05 16:01:45 UTC (rev 90398)
@@ -98,6 +98,8 @@
         WEBKIT_ASSERT_NOT_REACHED();
     }
 
+    virtual void dispatchDevToolsMessage(const WebString&) { }
+
 protected:
     ~WebCommonWorkerClient() { }
 };

Modified: trunk/Source/WebKit/chromium/public/WebSharedWorker.h (90397 => 90398)


--- trunk/Source/WebKit/chromium/public/WebSharedWorker.h	2011-07-05 15:35:19 UTC (rev 90397)
+++ trunk/Source/WebKit/chromium/public/WebSharedWorker.h	2011-07-05 16:01:45 UTC (rev 90398)
@@ -77,6 +77,10 @@
 
     // Notification when the WebCommonWorkerClient is destroyed.
     virtual void clientDestroyed() = 0;
+
+    virtual void attachDevTools() { }
+    virtual void detachDevTools() { }
+    virtual void dispatchDevToolsMessage(const WebString&) { }
 };
 
 } // namespace WebKit

Modified: trunk/Source/WebKit/chromium/public/WebWorkerClient.h (90397 => 90398)


--- trunk/Source/WebKit/chromium/public/WebWorkerClient.h	2011-07-05 15:35:19 UTC (rev 90397)
+++ trunk/Source/WebKit/chromium/public/WebWorkerClient.h	2011-07-05 16:01:45 UTC (rev 90398)
@@ -52,8 +52,6 @@
     virtual void confirmMessageFromWorkerObject(bool hasPendingActivity) = 0;
     virtual void reportPendingActivity(bool hasPendingActivity) = 0;
 
-    virtual void dispatchDevToolsMessage(const WebString&) { }
-
 protected:
     ~WebWorkerClient() { }
 };

Modified: trunk/Source/WebKit/chromium/src/WebSharedWorkerImpl.cpp (90397 => 90398)


--- trunk/Source/WebKit/chromium/src/WebSharedWorkerImpl.cpp	2011-07-05 15:35:19 UTC (rev 90397)
+++ trunk/Source/WebKit/chromium/src/WebSharedWorkerImpl.cpp	2011-07-05 16:01:45 UTC (rev 90398)
@@ -39,6 +39,8 @@
 #include "ScriptExecutionContext.h"
 #include "SharedWorkerContext.h"
 #include "SharedWorkerThread.h"
+#include "WorkerInspectorController.h"
+#include "WorkerScriptDebugServer.h"
 
 #include "WebMessagePortChannel.h"
 #include "WebString.h"
@@ -109,6 +111,39 @@
     m_client = 0;
 }
 
+static void connectToWorkerContextInspectorTask(ScriptExecutionContext* context, bool)
+{
+    ASSERT(context->isWorkerContext());
+    static_cast<WorkerContext*>(context)->workerInspectorController()->connectFrontend();
+}
+
+void WebSharedWorkerImpl::attachDevTools()
+{
+    workerThread()->runLoop().postTask(createCallbackTask(connectToWorkerContextInspectorTask, true));
+}
+
+static void disconnectFromWorkerContextInspectorTask(ScriptExecutionContext* context, bool)
+{
+    ASSERT(context->isWorkerContext());
+    static_cast<WorkerContext*>(context)->workerInspectorController()->disconnectFrontend();
+}
+
+void WebSharedWorkerImpl::detachDevTools()
+{
+    workerThread()->runLoop().postTaskForMode(createCallbackTask(disconnectFromWorkerContextInspectorTask, true), WorkerScriptDebugServer::debuggerTaskMode);
+}
+
+static void dispatchOnInspectorBackendTask(ScriptExecutionContext* context, const String& message)
+{
+    ASSERT(context->isWorkerContext());
+    static_cast<WorkerContext*>(context)->workerInspectorController()->dispatchMessageFromFrontend(message);
+}
+
+void WebSharedWorkerImpl::dispatchDevToolsMessage(const WebString& message)
+{
+    workerThread()->runLoop().postTaskForMode(createCallbackTask(dispatchOnInspectorBackendTask, String(message)), WorkerScriptDebugServer::debuggerTaskMode);
+}
+
 WebWorkerClient* WebSharedWorkerImpl::client()
 {
     // We should never be asked for a WebWorkerClient (only dedicated workers have an associated WebWorkerClient).

Modified: trunk/Source/WebKit/chromium/src/WebSharedWorkerImpl.h (90397 => 90398)


--- trunk/Source/WebKit/chromium/src/WebSharedWorkerImpl.h	2011-07-05 15:35:19 UTC (rev 90397)
+++ trunk/Source/WebKit/chromium/src/WebSharedWorkerImpl.h	2011-07-05 16:01:45 UTC (rev 90398)
@@ -56,6 +56,10 @@
     virtual void terminateWorkerContext();
     virtual void clientDestroyed();
 
+    virtual void attachDevTools();
+    virtual void detachDevTools();
+    virtual void dispatchDevToolsMessage(const WebString&);
+
     // WebWorkerBase methods:
     WebWorkerClient* client();
     WebCommonWorkerClient* commonClient() { return m_client; }

Modified: trunk/Source/WebKit/chromium/src/WebWorkerBase.cpp (90397 => 90398)


--- trunk/Source/WebKit/chromium/src/WebWorkerBase.cpp	2011-07-05 15:35:19 UTC (rev 90397)
+++ trunk/Source/WebKit/chromium/src/WebWorkerBase.cpp	2011-07-05 16:01:45 UTC (rev 90398)
@@ -429,9 +429,9 @@
 
 void WebWorkerBase::postMessageToPageInspectorTask(ScriptExecutionContext*, WebWorkerBase* thisPtr, const String& message)
 {
-    if (!thisPtr->client())
+    if (!thisPtr->commonClient())
         return;
-    thisPtr->client()->dispatchDevToolsMessage(message);
+    thisPtr->commonClient()->dispatchDevToolsMessage(message);
 }
 
 void WebWorkerBase::confirmMessageFromWorkerObject(bool hasPendingActivity)
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to