Title: [128892] trunk/Source/WebCore
Revision
128892
Author
[email protected]
Date
2012-09-18 07:14:10 -0700 (Tue, 18 Sep 2012)

Log Message

Web Inspector: [Extensions API] postpone requests to add extensions until extension server is initialized
https://bugs.webkit.org/show_bug.cgi?id=97012

Reviewed by Vsevolod Vlasov.

- queue extensions being added unless initialization is complete;
- add queued extensions upon completion of initialization;

* inspector/front-end/ExtensionServer.js:
(WebInspector.ExtensionServer.prototype.initExtensions):
(WebInspector.ExtensionServer.prototype._addExtensions):
(WebInspector.ExtensionServer.prototype._addExtension):
(WebInspector.ExtensionServer.prototype._innerAddExtension):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (128891 => 128892)


--- trunk/Source/WebCore/ChangeLog	2012-09-18 14:11:00 UTC (rev 128891)
+++ trunk/Source/WebCore/ChangeLog	2012-09-18 14:14:10 UTC (rev 128892)
@@ -1,3 +1,19 @@
+2012-09-18  Andrey Kosyakov  <[email protected]>
+
+        Web Inspector: [Extensions API] postpone requests to add extensions until extension server is initialized
+        https://bugs.webkit.org/show_bug.cgi?id=97012
+
+        Reviewed by Vsevolod Vlasov.
+
+        - queue extensions being added unless initialization is complete;
+        - add queued extensions upon completion of initialization;
+
+        * inspector/front-end/ExtensionServer.js:
+        (WebInspector.ExtensionServer.prototype.initExtensions):
+        (WebInspector.ExtensionServer.prototype._addExtensions):
+        (WebInspector.ExtensionServer.prototype._addExtension):
+        (WebInspector.ExtensionServer.prototype._innerAddExtension):
+
 2012-09-18  Christophe Dumez  <[email protected]>
 
         [EFL] min-device-width failures in media tests

Modified: trunk/Source/WebCore/inspector/front-end/ExtensionServer.js (128891 => 128892)


--- trunk/Source/WebCore/inspector/front-end/ExtensionServer.js	2012-09-18 14:11:00 UTC (rev 128891)
+++ trunk/Source/WebCore/inspector/front-end/ExtensionServer.js	2012-09-18 14:14:10 UTC (rev 128892)
@@ -610,6 +610,11 @@
         WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.InspectedURLChanged,
             this._inspectedURLChanged, this);
         WebInspector.resourceTreeModel.addEventListener(WebInspector.ResourceTreeModel.EventTypes.MainFrameNavigated, this._mainFrameNavigated, this);
+        this._initDone = true;
+        if (this._pendingExtensions) {
+            this._pendingExtensions.forEach(this._innerAddExtension, this);
+            delete this._pendingExtensions;
+        }
         InspectorExtensionRegistry.getExtensionsAsync();
     },
 
@@ -652,12 +657,23 @@
      */
     _addExtensions: function(extensions)
     {
-        for (var i = 0; i < extensions.length; ++i)
-            this._addExtension(extensions[i]);
+        extensions.forEach(this._addExtension, this);
     },
 
     _addExtension: function(extensionInfo)
     {
+        if (this._initDone) {
+            this._innerAddExtension(extensionInfo);
+            return;
+        }
+        if (this._pendingExtensions)
+            this._pendingExtensions.push(extensionInfo);
+        else
+            this._pendingExtensions = [extensionInfo];
+    },
+
+    _innerAddExtension: function(extensionInfo)
+    {
         const urlOriginRegExp = new RegExp("([^:]+:\/\/[^/]*)\/"); // Can't use regexp literal here, MinJS chokes on it.
         var startPage = extensionInfo.startPage;
         var name = extensionInfo.name;
_______________________________________________
webkit-changes mailing list
[email protected]
http://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to