Index: Source/devtools/front_end/extensions/ExtensionServer.js |
diff --git a/Source/devtools/front_end/extensions/ExtensionServer.js b/Source/devtools/front_end/extensions/ExtensionServer.js |
index feeeb00306c84c3bb2ba5e836d45d3d9ed52b0e8..883018a117488299b75331271c07086b3dd898e9 100644 |
--- a/Source/devtools/front_end/extensions/ExtensionServer.js |
+++ b/Source/devtools/front_end/extensions/ExtensionServer.js |
@@ -82,6 +82,9 @@ WebInspector.ExtensionServer = function() |
this._registerHandler(commands.UpdateAuditProgress, this._onUpdateAuditProgress.bind(this)); |
window.addEventListener("message", this._onWindowMessage.bind(this), false); // Only for main window. |
+ InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.AddExtensions, this._addExtensions, this); |
+ InspectorFrontendHost.events.addEventListener(InspectorFrontendHostAPI.Events.SetInspectedTabId, this._setInspectedTabId, this); |
+ |
this._initExtensions(); |
} |
@@ -95,7 +98,7 @@ WebInspector.ExtensionServer.prototype = { |
{ |
this._initializeCommandIssued = true; |
if (this._pendingExtensionInfos) { |
- this._addExtensions(this._pendingExtensionInfos); |
+ this._pendingExtensionInfos.forEach(this._addExtension, this); |
delete this._pendingExtensionInfos; |
} |
}, |
@@ -797,10 +800,14 @@ WebInspector.ExtensionServer.prototype = { |
}, |
/** |
- * @param {!Array.<!ExtensionDescriptor>} extensionInfos |
+ * @param {!WebInspector.Event} event |
*/ |
- _addExtensions: function(extensionInfos) |
+ _addExtensions: function(event) |
{ |
+ if (WebInspector.extensionServer._overridePlatformExtensionAPIForTest) |
+ window.buildPlatformExtensionAPI = WebInspector.extensionServer._overridePlatformExtensionAPIForTest; |
+ |
+ var extensionInfos = /** @type {!Array.<!ExtensionDescriptor>} */ (event.data); |
if (this._initializeCommandIssued) |
extensionInfos.forEach(this._addExtension, this); |
else |
@@ -808,6 +815,14 @@ WebInspector.ExtensionServer.prototype = { |
}, |
/** |
+ * @param {!WebInspector.Event} event |
+ */ |
+ _setInspectedTabId: function(event) |
+ { |
+ this._inspectedTabId = /** @type {string} */ (event.data); |
+ }, |
+ |
+ /** |
* @param {!ExtensionDescriptor} extensionInfo |
* @suppressGlobalPropertiesCheck |
*/ |
@@ -826,7 +841,7 @@ WebInspector.ExtensionServer.prototype = { |
var extensionOrigin = originMatch[1]; |
if (!this._registeredExtensions[extensionOrigin]) { |
// See ExtensionAPI.js for details. |
- InspectorFrontendHost.setInjectedScriptForOrigin(extensionOrigin, buildExtensionAPIInjectedScript(extensionInfo)); |
+ InspectorFrontendHost.setInjectedScriptForOrigin(extensionOrigin, buildExtensionAPIInjectedScript(extensionInfo, this._inspectedTabId)); |
this._registeredExtensions[extensionOrigin] = { name: name }; |
} |
var iframe = createElement("iframe"); |
@@ -1116,15 +1131,3 @@ WebInspector.ExtensionStatus.Record; |
WebInspector.extensionAPI = {}; |
defineCommonExtensionSymbols(WebInspector.extensionAPI); |
- |
-WebInspector.addExtensions = function(extensions) |
-{ |
- if (WebInspector.extensionServer._overridePlatformExtensionAPIForTest) |
- window.buildPlatformExtensionAPI = WebInspector.extensionServer._overridePlatformExtensionAPIForTest; |
- WebInspector.extensionServer._addExtensions(extensions); |
-} |
- |
-WebInspector.setInspectedTabId = function(tabId) |
-{ |
- WebInspector._inspectedTabId = tabId; |
-} |