Title: [94307] trunk/Source/WebCore
Revision
94307
Author
[email protected]
Date
2011-09-01 10:39:17 -0700 (Thu, 01 Sep 2011)

Log Message

Web Inspector: close dedicated worker inspectors when page inspector is closing
https://bugs.webkit.org/show_bug.cgi?id=67366

Close all dedicated worker inspector windows when page inspector is closing.

Reviewed by Pavel Feldman.

* inspector/front-end/WorkerManager.js:
(WebInspector.WorkerManager.prototype._openInspectorWindow):
(WebInspector.WorkerManager.prototype._pageInspectorClosing):
(WebInspector.WorkerManager.prototype._workerInspectorClosing):
* inspector/front-end/inspector.js:
(WebInspector.close):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (94306 => 94307)


--- trunk/Source/WebCore/ChangeLog	2011-09-01 17:36:12 UTC (rev 94306)
+++ trunk/Source/WebCore/ChangeLog	2011-09-01 17:39:17 UTC (rev 94307)
@@ -1,5 +1,21 @@
 2011-08-31  Yury Semikhatsky  <[email protected]>
 
+        Web Inspector: close dedicated worker inspectors when page inspector is closing
+        https://bugs.webkit.org/show_bug.cgi?id=67366
+
+        Close all dedicated worker inspector windows when page inspector is closing.
+
+        Reviewed by Pavel Feldman.
+
+        * inspector/front-end/WorkerManager.js:
+        (WebInspector.WorkerManager.prototype._openInspectorWindow):
+        (WebInspector.WorkerManager.prototype._pageInspectorClosing):
+        (WebInspector.WorkerManager.prototype._workerInspectorClosing):
+        * inspector/front-end/inspector.js:
+        (WebInspector.close):
+
+2011-08-31  Yury Semikhatsky  <[email protected]>
+
         [Chromium] Web Inspector: dedicated worker inspection is broken
         https://bugs.webkit.org/show_bug.cgi?id=67279
 

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


--- trunk/Source/WebCore/inspector/front-end/WorkerManager.js	2011-09-01 17:36:12 UTC (rev 94306)
+++ trunk/Source/WebCore/inspector/front-end/WorkerManager.js	2011-09-01 17:39:17 UTC (rev 94307)
@@ -109,6 +109,10 @@
         var workerInspectorWindow = window.open(url, undefined, "location=0");
         this._workerIdToWindow[workerId] = workerInspectorWindow;
         workerInspectorWindow.addEventListener("beforeunload", this._workerInspectorClosing.bind(this, workerId), true);
+
+        // Listen to beforeunload in detached state and to the InspectorClosing event in case of attached inspector.
+        window.addEventListener("beforeunload", this._pageInspectorClosing.bind(this), true);
+        WebInspector.notifications.addEventListener(WebInspector.Events.InspectorClosing, this._pageInspectorClosing, this);
     },
 
     closeWorkerInspector: function(workerId)
@@ -125,8 +129,19 @@
         this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkersCleared);
     },
 
+    _pageInspectorClosing: function()
+    {
+        this._ignoreWorkerInspectorClosing = true;
+        for (var workerId in this._workerIdToWindow) {
+            this._workerIdToWindow[workerId].close();
+            WorkerAgent.disconnectFromWorker(workerId);
+        }
+    },
+
     _workerInspectorClosing: function(workerId, event)
     {
+        if (this._ignoreWorkerInspectorClosing)
+            return;
         delete this._workerIdToWindow[workerId];
         WorkerAgent.disconnectFromWorker(workerId);
         this.dispatchEventToListeners(WebInspector.WorkerManager.Events.WorkerInspectorClosed, workerId);

Modified: trunk/Source/WebCore/inspector/front-end/inspector.js (94306 => 94307)


--- trunk/Source/WebCore/inspector/front-end/inspector.js	2011-09-01 17:36:12 UTC (rev 94306)
+++ trunk/Source/WebCore/inspector/front-end/inspector.js	2011-09-01 17:39:17 UTC (rev 94307)
@@ -432,6 +432,10 @@
     }
 }
 
+WebInspector.Events = {
+    InspectorClosing: "InspectorClosing"
+}
+
 {(function parseQueryParameters()
 {
     WebInspector.queryParamsObject = {};
@@ -467,6 +471,8 @@
 {
     InspectorFrontendHost.loaded();
 
+    this.notifications = new WebInspector.Object();
+
     var platform = WebInspector.platform;
     document.body.addStyleClass("platform-" + platform);
     var flavor = WebInspector.platformFlavor;
@@ -638,6 +644,7 @@
     if (this._isClosing)
         return;
     this._isClosing = true;
+    this.notifications.dispatchEventToListeners(WebInspector.Events.InspectorClosing);
     InspectorFrontendHost.closeWindow();
 }
 
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo.cgi/webkit-changes

Reply via email to