Title: [87803] trunk/Source/WebCore
Revision
87803
Author
[email protected]
Date
2011-06-01 07:34:11 -0700 (Wed, 01 Jun 2011)

Log Message

2011-06-01  Yury Semikhatsky  <[email protected]>

        Reviewed by Pavel Feldman.

        Web Inspector: allow opening inspector for existing workers
        https://bugs.webkit.org/show_bug.cgi?id=61853

        Added sidebar pane with a list of all workers. Each worker has a check box
        that allows opening inspector for the worker.

        * inspector/Inspector.json:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didStartWorkerContextImpl):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::didStartWorkerContext):
        * inspector/InspectorWorkerAgent.cpp:
        (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::WorkerFrontendChannel):
        (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel):
        (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::connectToWorkerContext):
        (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::disconnectFromWorkerContext):
        (WebCore::InspectorWorkerAgent::clearFrontend):
        (WebCore::InspectorWorkerAgent::connectToWorker):
        (WebCore::InspectorWorkerAgent::disconnectFromWorker):
        (WebCore::InspectorWorkerAgent::didStartWorkerContext):
        * inspector/InspectorWorkerAgent.h:
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel):
        * inspector/front-end/Settings.js:
        * inspector/front-end/WorkerManager.js:
        (WebInspector.WorkerManager):
        (WebInspector.WorkerManager.prototype._workerCreated):
        (WebInspector.WorkerManager.prototype._sendMessageToWorkerInspector):
        (WebInspector.WorkerManager.prototype.openWorkerInspector):
        (WebInspector.WorkerManager.prototype.closeWorkerInspector):
        (WebInspector.WorkerManager.prototype._workerInspectorClosing):
        (WebInspector.WorkerMessageForwarder):
        (WebInspector.WorkerMessageForwarder.prototype.workerCreated):
        (WebInspector.WorkerMessageForwarder.prototype.dispatchMessageFromWorker):
        * inspector/front-end/WorkersSidebarPane.js:
        (WebInspector.WorkersSidebarPane):
        (WebInspector.WorkersSidebarPane.prototype.addWorker):
        (WebInspector.WorkerListSidebarPane):
        (WebInspector.WorkerListSidebarPane.prototype._workerAdded):
        (WebInspector.WorkerListSidebarPane.prototype._workerRemoved):
        (WebInspector.WorkerListSidebarPane.prototype._workerInspectorClosed):
        (WebInspector.WorkerListSidebarPane.prototype._addWorker):
        (WebInspector.WorkerListSidebarPane.prototype._createCheckbox):
        (WebInspector.WorkerListSidebarPane.prototype._workerItemClicked):
        * workers/Worker.cpp:
        (WebCore::Worker::notifyFinished):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (87802 => 87803)


--- trunk/Source/WebCore/ChangeLog	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/ChangeLog	2011-06-01 14:34:11 UTC (rev 87803)
@@ -1,3 +1,54 @@
+2011-06-01  Yury Semikhatsky  <[email protected]>
+
+        Reviewed by Pavel Feldman.
+
+        Web Inspector: allow opening inspector for existing workers
+        https://bugs.webkit.org/show_bug.cgi?id=61853
+
+        Added sidebar pane with a list of all workers. Each worker has a check box
+        that allows opening inspector for the worker.
+
+        * inspector/Inspector.json:
+        * inspector/InspectorInstrumentation.cpp:
+        (WebCore::InspectorInstrumentation::didStartWorkerContextImpl):
+        * inspector/InspectorInstrumentation.h:
+        (WebCore::InspectorInstrumentation::didStartWorkerContext):
+        * inspector/InspectorWorkerAgent.cpp:
+        (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::WorkerFrontendChannel):
+        (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::~WorkerFrontendChannel):
+        (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::connectToWorkerContext):
+        (WebCore::InspectorWorkerAgent::WorkerFrontendChannel::disconnectFromWorkerContext):
+        (WebCore::InspectorWorkerAgent::clearFrontend):
+        (WebCore::InspectorWorkerAgent::connectToWorker):
+        (WebCore::InspectorWorkerAgent::disconnectFromWorker):
+        (WebCore::InspectorWorkerAgent::didStartWorkerContext):
+        * inspector/InspectorWorkerAgent.h:
+        * inspector/front-end/ScriptsPanel.js:
+        (WebInspector.ScriptsPanel):
+        * inspector/front-end/Settings.js:
+        * inspector/front-end/WorkerManager.js:
+        (WebInspector.WorkerManager):
+        (WebInspector.WorkerManager.prototype._workerCreated):
+        (WebInspector.WorkerManager.prototype._sendMessageToWorkerInspector):
+        (WebInspector.WorkerManager.prototype.openWorkerInspector):
+        (WebInspector.WorkerManager.prototype.closeWorkerInspector):
+        (WebInspector.WorkerManager.prototype._workerInspectorClosing):
+        (WebInspector.WorkerMessageForwarder):
+        (WebInspector.WorkerMessageForwarder.prototype.workerCreated):
+        (WebInspector.WorkerMessageForwarder.prototype.dispatchMessageFromWorker):
+        * inspector/front-end/WorkersSidebarPane.js:
+        (WebInspector.WorkersSidebarPane):
+        (WebInspector.WorkersSidebarPane.prototype.addWorker):
+        (WebInspector.WorkerListSidebarPane):
+        (WebInspector.WorkerListSidebarPane.prototype._workerAdded):
+        (WebInspector.WorkerListSidebarPane.prototype._workerRemoved):
+        (WebInspector.WorkerListSidebarPane.prototype._workerInspectorClosed):
+        (WebInspector.WorkerListSidebarPane.prototype._addWorker):
+        (WebInspector.WorkerListSidebarPane.prototype._createCheckbox):
+        (WebInspector.WorkerListSidebarPane.prototype._workerItemClicked):
+        * workers/Worker.cpp:
+        (WebCore::Worker::notifyFinished):
+
 2011-06-01  Shishir Agrawal  <[email protected]>
 
         Reviewed by Tony Gentilcore.

Modified: trunk/Source/WebCore/inspector/Inspector.json (87802 => 87803)


--- trunk/Source/WebCore/inspector/Inspector.json	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/inspector/Inspector.json	2011-06-01 14:34:11 UTC (rev 87803)
@@ -1726,13 +1726,26 @@
                     { "name": "workerId", "type": "integer" },
                     { "name": "message", "type": "object" }
                 ]
+            },
+            {
+                "name": "connectToWorker",
+                "parameters": [
+                    { "name": "workerId", "type": "integer" }
+                ]
+            },
+            {
+                "name": "disconnectFromWorker",
+                "parameters": [
+                    { "name": "workerId", "type": "integer" }
+                ]
             }
         ],
         "events": [
             {
                 "name": "workerCreated",
                 "parameters": [
-                    { "name": "workerId", "type": "integer" }
+                    { "name": "workerId", "type": "integer" },
+                    { "name": "url", "type": "string" }
                 ]
             },
             {

Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp (87802 => 87803)


--- trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.cpp	2011-06-01 14:34:11 UTC (rev 87803)
@@ -716,10 +716,10 @@
 #endif
 
 #if ENABLE(WORKERS)
-void InspectorInstrumentation::didStartWorkerContextImpl(InstrumentingAgents* instrumentingAgents, WorkerContextProxy* workerContextProxy)
+void InspectorInstrumentation::didStartWorkerContextImpl(InstrumentingAgents* instrumentingAgents, WorkerContextProxy* workerContextProxy, const KURL& url)
 {
     if (InspectorWorkerAgent* workerAgent = instrumentingAgents->inspectorWorkerAgent())
-        workerAgent->didStartWorkerContext(workerContextProxy);
+        workerAgent->didStartWorkerContext(workerContextProxy, url);
 }
 
 void InspectorInstrumentation::didCreateWorkerImpl(InstrumentingAgents* instrumentingAgents, intptr_t id, const String& url, bool isSharedWorker)

Modified: trunk/Source/WebCore/inspector/InspectorInstrumentation.h (87802 => 87803)


--- trunk/Source/WebCore/inspector/InspectorInstrumentation.h	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/inspector/InspectorInstrumentation.h	2011-06-01 14:34:11 UTC (rev 87803)
@@ -161,7 +161,7 @@
 
 #if ENABLE(WORKERS)
     static bool willStartWorkerContext(ScriptExecutionContext*, WorkerContextProxy*);
-    static void didStartWorkerContext(ScriptExecutionContext*, WorkerContextProxy*, bool paused);
+    static void didStartWorkerContext(ScriptExecutionContext*, WorkerContextProxy*, bool paused, const KURL&);
     static void didCreateWorker(ScriptExecutionContext*, intptr_t id, const String& url, bool isSharedWorker);
     static void didDestroyWorker(ScriptExecutionContext*, intptr_t id);
 #endif
@@ -283,7 +283,7 @@
 #endif
 
 #if ENABLE(WORKERS)
-    static void didStartWorkerContextImpl(InstrumentingAgents*, WorkerContextProxy*);
+    static void didStartWorkerContextImpl(InstrumentingAgents*, WorkerContextProxy*, const KURL&);
     static void didCreateWorkerImpl(InstrumentingAgents*, intptr_t id, const String& url, bool isSharedWorker);
     static void didDestroyWorkerImpl(InstrumentingAgents*, intptr_t id);
 #endif
@@ -856,14 +856,14 @@
     return false;
 }
 
-inline void InspectorInstrumentation::didStartWorkerContext(ScriptExecutionContext* context, WorkerContextProxy* proxy, bool paused)
+inline void InspectorInstrumentation::didStartWorkerContext(ScriptExecutionContext* context, WorkerContextProxy* proxy, bool paused, const KURL& url)
 {
 #if ENABLE(INSPECTOR)
     if (!paused)
         return;
     FAST_RETURN_IF_NO_FRONTENDS(void());
     if (InstrumentingAgents* instrumentingAgents = instrumentingAgentsForContext(context))
-        didStartWorkerContextImpl(instrumentingAgents, proxy);
+        didStartWorkerContextImpl(instrumentingAgents, proxy, url);
 #endif
 }
 

Modified: trunk/Source/WebCore/inspector/InspectorWorkerAgent.cpp (87802 => 87803)


--- trunk/Source/WebCore/inspector/InspectorWorkerAgent.cpp	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/inspector/InspectorWorkerAgent.cpp	2011-06-01 14:34:11 UTC (rev 87803)
@@ -38,6 +38,7 @@
 #include "InspectorFrontendChannel.h"
 #include "InspectorValues.h"
 #include "InstrumentingAgents.h"
+#include "KURL.h"
 #include "WorkerContextProxy.h"
 #include <wtf/PassOwnPtr.h>
 #include <wtf/RefPtr.h>
@@ -50,13 +51,33 @@
         : m_frontend(frontend)
         , m_proxy(proxy)
         , m_id(s_nextId++)
+        , m_connected(false)
     {
     }
-    virtual ~WorkerFrontendChannel() { }
+    virtual ~WorkerFrontendChannel()
+    {
+        disconnectFromWorkerContext();
+    }
 
     int id() const { return m_id; }
     WorkerContextProxy* proxy() const { return m_proxy; }
 
+    void connectToWorkerContext()
+    {
+        if (m_connected)
+            return;
+        m_connected = true;
+        m_proxy->connectToInspector(this);
+    }
+
+    void disconnectFromWorkerContext()
+    {
+        if (!m_connected)
+            return;
+        m_connected = false;
+        m_proxy->disconnectFromInspector();
+    }
+
 private:
     // WorkerContextProxy::PageInspector implementation
     virtual void dispatchMessageFromWorker(const String& message)
@@ -73,6 +94,7 @@
     InspectorFrontend* m_frontend;
     WorkerContextProxy* m_proxy;
     int m_id;
+    bool m_connected;
     static int s_nextId;
 };
 
@@ -104,8 +126,28 @@
 {
     m_inspectorFrontend = 0;
     m_instrumentingAgents->setInspectorWorkerAgent(0);
+    deleteAllValues(m_idToChannel);
+    m_idToChannel.clear();
 }
 
+void InspectorWorkerAgent::connectToWorker(ErrorString* error, int workerId)
+{
+    WorkerFrontendChannel* channel = m_idToChannel.get(workerId);
+    if (channel)
+        channel->connectToWorkerContext();
+    else
+        *error = "Worker is gone";
+}
+
+void InspectorWorkerAgent::disconnectFromWorker(ErrorString* error, int workerId)
+{
+    WorkerFrontendChannel* channel = m_idToChannel.get(workerId);
+    if (channel)
+        channel->disconnectFromWorkerContext();
+    else
+        *error = "Worker is gone";
+}
+
 void InspectorWorkerAgent::sendMessageToWorker(ErrorString* error, int workerId, PassRefPtr<InspectorObject> message)
 {
     WorkerFrontendChannel* channel = m_idToChannel.get(workerId);
@@ -115,14 +157,13 @@
         *error = "Worker is gone";
 }
 
-void InspectorWorkerAgent::didStartWorkerContext(WorkerContextProxy* workerContextProxy)
+void InspectorWorkerAgent::didStartWorkerContext(WorkerContextProxy* workerContextProxy, const KURL& url)
 {
     WorkerFrontendChannel* channel = new WorkerFrontendChannel(m_inspectorFrontend, workerContextProxy);
     m_idToChannel.set(channel->id(), channel);
 
-    workerContextProxy->connectToInspector(channel);
-    if (m_inspectorFrontend)
-        m_inspectorFrontend->worker()->workerCreated(channel->id());
+    ASSERT(m_inspectorFrontend);
+    m_inspectorFrontend->worker()->workerCreated(channel->id(), url.string());
 }
 
 } // namespace WebCore

Modified: trunk/Source/WebCore/inspector/InspectorWorkerAgent.h (87802 => 87803)


--- trunk/Source/WebCore/inspector/InspectorWorkerAgent.h	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/inspector/InspectorWorkerAgent.h	2011-06-01 14:34:11 UTC (rev 87803)
@@ -40,6 +40,7 @@
 class InspectorFrontend;
 class InspectorObject;
 class InstrumentingAgents;
+class KURL;
 class WorkerContextProxy;
 
 typedef String ErrorString;
@@ -53,9 +54,11 @@
     void clearFrontend();
 
     // Called from InspectorInstrumentation
-    void didStartWorkerContext(WorkerContextProxy*);
+    void didStartWorkerContext(WorkerContextProxy*, const KURL&);
 
     // Called from InspectorBackendDispatcher
+    void connectToWorker(ErrorString*, int workerId);
+    void disconnectFromWorker(ErrorString*, int workerId);
     void sendMessageToWorker(ErrorString*, int workerId, PassRefPtr<InspectorObject> message);
 
 private:

Modified: trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js (87802 => 87803)


--- trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/inspector/front-end/ScriptsPanel.js	2011-06-01 14:34:11 UTC (rev 87803)
@@ -107,7 +107,10 @@
     }
 
     this.sidebarPanes.workers = new WebInspector.WorkersSidebarPane();
+    if (Preferences.canInspectWorkers && WebInspector.workerManager)
+        this.sidebarPanes.workerList = new WebInspector.WorkerListSidebarPane(WebInspector.workerManager);
 
+
     for (var pane in this.sidebarPanes)
         this.sidebarElement.appendChild(this.sidebarPanes[pane].element);
 

Modified: trunk/Source/WebCore/inspector/front-end/Settings.js (87802 => 87803)


--- trunk/Source/WebCore/inspector/front-end/Settings.js	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/inspector/front-end/Settings.js	2011-06-01 14:34:11 UTC (rev 87803)
@@ -51,7 +51,8 @@
     heapProfilerPresent: false,
     detailedHeapProfiles: false,
     saveAsAvailable: false,
-    useLowerCaseMenuTitlesOnWindows: false
+    useLowerCaseMenuTitlesOnWindows: false,
+    canInspectWorkers: false,
 }
 
 WebInspector.Settings = function()

Modified: trunk/Source/WebCore/inspector/front-end/WorkerManager.js (87802 => 87803)


--- trunk/Source/WebCore/inspector/front-end/WorkerManager.js	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/inspector/front-end/WorkerManager.js	2011-06-01 14:34:11 UTC (rev 87803)
@@ -30,6 +30,8 @@
 
 WebInspector.WorkerManager = function()
 {
+    this._workerIdToWindow = {};
+    InspectorBackend.registerDomainDispatcher("Worker", new WebInspector.WorkerMessageForwarder(this));
 }
 
 WebInspector.WorkerManager.isWorkerFrontend = function()
@@ -41,11 +43,10 @@
 {
     var workerId = WebInspector.queryParamsObject["workerId"];
     if (!workerId) {
-        InspectorBackend.registerDomainDispatcher("Worker", new WebInspector.WorkerMessageForwarder());
+        WebInspector.workerManager = new WebInspector.WorkerManager();
         return;
     }
 
-
     function receiveMessage(event)
     {
         var message = event.data;
@@ -65,11 +66,56 @@
     }
 }
 
+WebInspector.WorkerManager.Events = {
+    WorkerAdded: "worker-added",
+    WorkerRemoved: "worker-removed",
+    WorkerInspectorClosed: "worker-inspector-closed"
+}
 
-WebInspector.WorkerMessageForwarder = function()
+WebInspector.WorkerManager.prototype = {
+    _workerCreated: function(workerId, url)
+    {
+        this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkerAdded, {workerId: workerId, url: url});
+    },
+
+    _sendMessageToWorkerInspector: function(workerId, message)
+    {
+        var workerInspectorWindow = this._workerIdToWindow[workerId];
+        if (workerInspectorWindow)
+            workerInspectorWindow.postMessage(message, "*");
+    },
+
+    openWorkerInspector: function(workerId)
+    {
+        var url = "" + "&workerId=" + workerId;
+        url = "" "");
+        var workerInspectorWindow = window.open(url);
+        this._workerIdToWindow[workerId] = workerInspectorWindow;
+        workerInspectorWindow.addEventListener("beforeunload", this._workerInspectorClosing.bind(this, workerId), true);
+        WorkerAgent.connectToWorker(workerId);
+    },
+
+    closeWorkerInspector: function(workerId)
+    {
+        var workerInspectorWindow = this._workerIdToWindow[workerId];
+        if (workerInspectorWindow)
+            workerInspectorWindow.close();
+    },
+
+    _workerInspectorClosing: function(workerId, event)
+    {
+        delete this._workerIdToWindow[workerId];
+        WorkerAgent.disconnectFromWorker(workerId);
+        this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkerInspectorClosed, workerId);
+    }
+}
+
+WebInspector.WorkerManager.prototype.__proto__ = WebInspector.Object.prototype;
+
+WebInspector.WorkerMessageForwarder = function(workerManager)
 {
+    this._workerManager = workerManager;
     window.addEventListener("message", this._receiveMessage.bind(this), true);
-    this._workerIdToWindow = {};
 }
 
 WebInspector.WorkerMessageForwarder.prototype = {
@@ -84,17 +130,13 @@
             WorkerAgent.sendMessageToWorker(workerId, message);
     },
 
-    workerCreated: function(workerId)
+    workerCreated: function(workerId, url)
     {
-        var url = "" + "&workerId=" + workerId;
-        url = "" "");
-        this._workerIdToWindow[workerId] = window.open(url);
+        this._workerManager._workerCreated(workerId, url);
     },
 
     dispatchMessageFromWorker: function(workerId, message)
     {
-        var win = this._workerIdToWindow[workerId];
-        if (win)
-            win.postMessage(message, "*");
+        this._workerManager._sendMessageToWorkerInspector(workerId, message);
     }
 }

Modified: trunk/Source/WebCore/inspector/front-end/WorkersSidebarPane.js (87802 => 87803)


--- trunk/Source/WebCore/inspector/front-end/WorkersSidebarPane.js	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/inspector/front-end/WorkersSidebarPane.js	2011-06-01 14:34:11 UTC (rev 87803)
@@ -31,7 +31,7 @@
 WebInspector.WorkersSidebarPane = function()
 {
     WebInspector.SidebarPane.call(this, WebInspector.UIString("Workers"));
-    
+
     this._workers = {};
 
     this._enableWorkersCheckbox = new WebInspector.Checkbox(
@@ -53,7 +53,7 @@
 WebInspector.WorkersSidebarPane.prototype = {
     addWorker: function(id, url, isShared)
     {
-        if (id in this._workers) 
+        if (id in this._workers)
             return;
         var worker = new WebInspector.Worker(id, url, isShared);
         this._workers[id] = worker;
@@ -100,3 +100,75 @@
     this.url = ""
     this.shared = shared;
 }
+
+
+
+WebInspector.WorkerListSidebarPane = function(workerManager)
+{
+    WebInspector.SidebarPane.call(this, WebInspector.UIString("Worker inspectors"));
+
+    this._workerListElement = document.createElement("ol");
+    this._workerListElement.tabIndex = 0;
+    this._workerListElement.addStyleClass("properties-tree");
+    this._workerListTreeOutline = new TreeOutline(this._workerListElement);
+    this.bodyElement.appendChild(this._workerListElement);
+
+    this._idToWorkerItem = {};
+    this._workerManager = workerManager;
+
+    workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkerAdded, this._workerAdded, this);
+    workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkerRemoved, this._workerRemoved, this);
+    workerManager.addEventListener(WebInspector.WorkerManager.Events.WorkerInspectorClosed, this._workerInspectorClosed, this);
+}
+
+WebInspector.WorkerListSidebarPane.prototype = {
+    _workerAdded: function(event)
+    {
+        this._addWorker(event.data.workerId, event.data.url);
+    },
+
+    _workerRemoved: function(event)
+    {
+        var workerItem = this._idToWorkerItem[event.data];
+        workerItem.element.parentElement.removeChild(workerItem.element);
+    },
+
+    _workerInspectorClosed: function(event)
+    {
+        var workerItem = this._idToWorkerItem[event.data];
+        workerItem.checkbox.checked = false;
+    },
+
+    _addWorker: function(workerId, url)
+    {
+        var workerItem = {};
+        workerItem.workerId = workerId;
+        workerItem.element = new TreeElement(url);
+        this._workerListTreeOutline.appendChild(workerItem.element);
+        workerItem.element.selectable = true;
+
+        workerItem.checkbox = this._createCheckbox(workerItem.element);
+        workerItem.checkbox.addEventListener("click", this._workerItemClicked.bind(this, workerItem), true);
+
+        this._idToWorkerItem[workerId] = workerItem;
+    },
+
+    _createCheckbox: function(treeElement)
+    {
+        var checkbox = document.createElement("input");
+        checkbox.className = "checkbox-elem";
+        checkbox.type = "checkbox";
+        treeElement.listItemElement.insertBefore(checkbox, treeElement.listItemElement.firstChild);
+        return checkbox;
+    },
+
+    _workerItemClicked: function(workerItem, event)
+    {
+        if (event.target.checked)
+            this._workerManager.openWorkerInspector(workerItem.workerId);
+        else
+            this._workerManager.closeWorkerInspector(workerItem.workerId);
+    }
+}
+
+WebInspector.WorkerListSidebarPane.prototype.__proto__ = WebInspector.SidebarPane.prototype;

Modified: trunk/Source/WebCore/workers/Worker.cpp (87802 => 87803)


--- trunk/Source/WebCore/workers/Worker.cpp	2011-06-01 14:11:23 UTC (rev 87802)
+++ trunk/Source/WebCore/workers/Worker.cpp	2011-06-01 14:34:11 UTC (rev 87803)
@@ -133,7 +133,7 @@
     else {
         bool shouldStartPaused = InspectorInstrumentation::willStartWorkerContext(scriptExecutionContext(), m_contextProxy);
         m_contextProxy->startWorkerContext(m_scriptLoader->url(), scriptExecutionContext()->userAgent(m_scriptLoader->url()), m_scriptLoader->script());
-        InspectorInstrumentation::didStartWorkerContext(scriptExecutionContext(), m_contextProxy, shouldStartPaused);
+        InspectorInstrumentation::didStartWorkerContext(scriptExecutionContext(), m_contextProxy, shouldStartPaused, m_scriptLoader->url());
         InspectorInstrumentation::scriptImported(scriptExecutionContext(), m_scriptLoader->identifier(), m_scriptLoader->script());
     }
     m_scriptLoader = nullptr;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to