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 292fdfad0feddbbe179acad6193d5055938b6df5..9d1842b9714129a34a9a7e4aec928ae96fda65c5 100644 |
--- a/Source/devtools/front_end/extensions/ExtensionServer.js |
+++ b/Source/devtools/front_end/extensions/ExtensionServer.js |
@@ -30,7 +30,7 @@ |
/** |
* @constructor |
- * @implements {WebInspector.ExtensionServerAPI} |
+ * @extends {WebInspector.Object} |
*/ |
WebInspector.ExtensionServer = function() |
{ |
@@ -44,6 +44,10 @@ WebInspector.ExtensionServer = function() |
this._lastRequestId = 0; |
this._registeredExtensions = {}; |
this._status = new WebInspector.ExtensionStatus(); |
+ /** @type {!Array.<!WebInspector.ExtensionSidebarPane>} */ |
+ this._sidebarPanes = []; |
+ /** @type {!Array.<!WebInspector.ExtensionAuditCategory>} */ |
+ this._auditCategories = []; |
var commands = WebInspector.extensionAPI.Commands; |
@@ -80,6 +84,11 @@ WebInspector.ExtensionServer = function() |
this._initExtensions(); |
} |
+WebInspector.ExtensionServer.Events = { |
+ SidebarPaneAdded: "SidebarPaneAdded", |
+ AuditCategoryAdded: "AuditCategoryAdded" |
+} |
+ |
WebInspector.ExtensionServer.prototype = { |
/** |
* @return {boolean} |
@@ -133,13 +142,13 @@ WebInspector.ExtensionServer.prototype = { |
/** |
- * @param {!WebInspector.ExtensionAuditCategory} category |
+ * @param {string} categoryId |
* @param {!WebInspector.ExtensionAuditCategoryResults} auditResults |
*/ |
- startAuditRun: function(category, auditResults) |
+ startAuditRun: function(categoryId, auditResults) |
{ |
- this._clientObjects[auditResults.id] = auditResults; |
- this._postNotification("audit-started-" + category.id, auditResults.id); |
+ this._clientObjects[auditResults.id()] = auditResults; |
+ this._postNotification("audit-started-" + categoryId, auditResults.id()); |
}, |
/** |
@@ -147,7 +156,7 @@ WebInspector.ExtensionServer.prototype = { |
*/ |
stopAuditRun: function(auditResults) |
{ |
- delete this._clientObjects[auditResults.id]; |
+ delete this._clientObjects[auditResults.id()]; |
}, |
/** |
@@ -287,15 +296,23 @@ WebInspector.ExtensionServer.prototype = { |
{ |
if (message.panel !== "elements" && message.panel !== "sources") |
return this._status.E_NOTFOUND(message.panel); |
- var panel = message.panel === "elements" ? WebInspector.ElementsPanel.instance() : WebInspector.SourcesPanel.instance(); |
var id = message.id; |
- var sidebar = new WebInspector.ExtensionSidebarPane(this, message.title, id); |
+ var sidebar = new WebInspector.ExtensionSidebarPane(this, message.panel, message.title, id); |
+ this._sidebarPanes.push(sidebar); |
this._clientObjects[id] = sidebar; |
- panel.addExtensionSidebarPane(id, sidebar); |
+ this.dispatchEventToListeners(WebInspector.ExtensionServer.Events.SidebarPaneAdded, sidebar); |
return this._status.OK(); |
}, |
+ /** |
+ * @return {!Array.<!WebInspector.ExtensionSidebarPane>} |
+ */ |
+ sidebarPanes: function() |
+ { |
+ return this._sidebarPanes; |
+ }, |
+ |
_onSetSidebarHeight: function(message) |
{ |
var sidebar = this._clientObjects[message.id]; |
@@ -607,16 +624,23 @@ WebInspector.ExtensionServer.prototype = { |
_onAddAuditCategory: function(message, port) |
{ |
- var category = new WebInspector.ExtensionAuditCategory(this, port._extensionOrigin, message.id, message.displayName, message.resultCount); |
- if (WebInspector.AuditsPanel.instance().getCategory(category.id)) |
- return this._status.E_EXISTS(category.id); |
+ var category = new WebInspector.ExtensionAuditCategory(port._extensionOrigin, message.id, message.displayName, message.resultCount); |
this._clientObjects[message.id] = category; |
- WebInspector.AuditsPanel.instance().addCategory(category); |
+ this._auditCategories.push(category); |
+ this.dispatchEventToListeners(WebInspector.ExtensionServer.Events.AuditCategoryAdded, category); |
+ }, |
+ |
+ /** |
+ * @return {!Array.<!WebInspector.ExtensionAuditCategory>} |
+ */ |
+ auditCategories: function() |
+ { |
+ return this._auditCategories; |
}, |
_onAddAuditResult: function(message) |
{ |
- var auditResult = this._clientObjects[message.resultId]; |
+ var auditResult = /** {!WebInspector.ExtensionAuditCategoryResults} */ (this._clientObjects[message.resultId]); |
if (!auditResult) |
return this._status.E_NOTFOUND(message.resultId); |
try { |
@@ -629,7 +653,7 @@ WebInspector.ExtensionServer.prototype = { |
_onUpdateAuditProgress: function(message) |
{ |
- var auditResult = this._clientObjects[message.resultId]; |
+ var auditResult = /** {!WebInspector.ExtensionAuditCategoryResults} */ (this._clientObjects[message.resultId]); |
if (!auditResult) |
return this._status.E_NOTFOUND(message.resultId); |
auditResult.updateProgress(Math.min(Math.max(0, message.progress), 1)); |
@@ -637,7 +661,7 @@ WebInspector.ExtensionServer.prototype = { |
_onStopAuditCategoryRun: function(message) |
{ |
- var auditRun = this._clientObjects[message.resultId]; |
+ var auditRun = /** {!WebInspector.ExtensionAuditCategoryResults} */ (this._clientObjects[message.resultId]); |
if (!auditRun) |
return this._status.E_NOTFOUND(message.resultId); |
auditRun.done(); |
@@ -712,11 +736,6 @@ WebInspector.ExtensionServer.prototype = { |
this._registerSubscriptionHandler(WebInspector.extensionAPI.Events.PanelObjectSelected + "elements", |
onElementsSubscriptionStarted.bind(this), onElementsSubscriptionStopped.bind(this)); |
- |
- this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.PanelObjectSelected + "sources", |
- WebInspector.notifications, |
- WebInspector.SourceFrame.Events.SelectionChanged, |
- this._notifySourceFrameSelectionChanged); |
this._registerResourceContentCommittedHandler(this._notifyUISourceCodeContentCommitted); |
WebInspector.targetManager.addEventListener(WebInspector.TargetManager.Events.InspectedURLChanged, |
@@ -725,28 +744,6 @@ WebInspector.ExtensionServer.prototype = { |
InspectorExtensionRegistry.getExtensionsAsync(); |
}, |
- /** |
- * @param {!WebInspector.TextRange} textRange |
- */ |
- _makeSourceSelection: function(textRange) |
- { |
- var sourcesPanel = WebInspector.SourcesPanel.instance(); |
- var selection = { |
- startLine: textRange.startLine, |
- startColumn: textRange.startColumn, |
- endLine: textRange.endLine, |
- endColumn: textRange.endColumn, |
- url: sourcesPanel.sourcesView().currentUISourceCode().uri() |
- }; |
- |
- return selection; |
- }, |
- |
- _notifySourceFrameSelectionChanged: function(event) |
caseq
2014/10/20 09:20:10
Please state the fact that we remove support for s
|
- { |
- this._postNotification(WebInspector.extensionAPI.Events.PanelObjectSelected + "sources", this._makeSourceSelection(event.data)); |
- }, |
- |
_notifyConsoleMessageAdded: function(event) |
{ |
this._postNotification(WebInspector.extensionAPI.Events.ConsoleMessageAdded, this._makeConsoleMessage(event.data)); |
@@ -779,7 +776,7 @@ WebInspector.ExtensionServer.prototype = { |
/** |
* @param {!Array.<!ExtensionDescriptor>} extensionInfos |
*/ |
- addExtensions: function(extensionInfos) |
+ _addExtensions: function(extensionInfos) |
{ |
extensionInfos.forEach(this._addExtension, this); |
}, |
@@ -1009,7 +1006,9 @@ WebInspector.ExtensionServer.prototype = { |
contextId = context.id; |
} |
RuntimeAgent.evaluate(expression, "extension", exposeCommandLineAPI, true, contextId, returnByValue, false, callback); |
- } |
+ }, |
+ |
+ __proto__: WebInspector.Object.prototype |
} |
/** |
@@ -1090,3 +1089,15 @@ 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; |
+} |