blob: 7c21d630fdfce3ca8d6ebd1133e6c14896cb6dc5 [file] [log] [blame]
/*
* Copyright 2014 The Chromium Authors. All rights reserved.
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
/**
* @interface
*/
WebInspector.ExtensionServerAPI = function() { }
WebInspector.ExtensionServerAPI.prototype = {
/**
* @param {!Array.<!ExtensionDescriptor>} descriptors
*/
addExtensions: function(descriptors) { }
}
/**
* @constructor
*/
WebInspector.ExtensionServerProxy = function()
{
}
WebInspector.ExtensionServerProxy._ensureExtensionServer = function()
{
if (!WebInspector.extensionServer)
WebInspector.extensionServer = WebInspector.moduleManager.instance(WebInspector.ExtensionServerAPI);
},
WebInspector.ExtensionServerProxy.prototype = {
setFrontendReady: function()
{
this._frontendReady = true;
this._pushExtensionsToServer();
},
_addExtensions: function(extensions)
{
if (extensions.length === 0)
return;
console.assert(!this._pendingExtensions);
this._pendingExtensions = extensions;
this._pushExtensionsToServer();
},
_pushExtensionsToServer: function()
{
if (!this._frontendReady || !this._pendingExtensions)
return;
WebInspector.ExtensionServerProxy._ensureExtensionServer();
WebInspector.extensionServer.addExtensions(this._pendingExtensions);
delete this._pendingExtensions;
}
}
WebInspector.extensionServerProxy = new WebInspector.ExtensionServerProxy();
WebInspector.addExtensions = function(extensions)
{
WebInspector.extensionServerProxy._addExtensions(extensions);
}
WebInspector.setInspectedTabId = function(tabId)
{
WebInspector._inspectedTabId = tabId;
}