Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (C) 2011 Google Inc. All rights reserved. | 2 * Copyright (C) 2011 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
| 6 * met: | 6 * met: |
| 7 * | 7 * |
| 8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT | 23 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | 24 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | 25 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 26 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE | 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 28 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 29 */ | 29 */ |
| 30 | 30 |
| 31 /** | 31 /** |
| 32 * @constructor | 32 * @constructor |
| 33 * @implements {WebInspector.ExtensionServerAPI} | 33 * @extends {WebInspector.Object} |
| 34 */ | 34 */ |
| 35 WebInspector.ExtensionServer = function() | 35 WebInspector.ExtensionServer = function() |
| 36 { | 36 { |
| 37 this._clientObjects = {}; | 37 this._clientObjects = {}; |
| 38 this._handlers = {}; | 38 this._handlers = {}; |
| 39 this._subscribers = {}; | 39 this._subscribers = {}; |
| 40 this._subscriptionStartHandlers = {}; | 40 this._subscriptionStartHandlers = {}; |
| 41 this._subscriptionStopHandlers = {}; | 41 this._subscriptionStopHandlers = {}; |
| 42 this._extraHeaders = {}; | 42 this._extraHeaders = {}; |
| 43 this._requests = {}; | 43 this._requests = {}; |
| 44 this._lastRequestId = 0; | 44 this._lastRequestId = 0; |
| 45 this._registeredExtensions = {}; | 45 this._registeredExtensions = {}; |
| 46 this._status = new WebInspector.ExtensionStatus(); | 46 this._status = new WebInspector.ExtensionStatus(); |
| 47 /** @type {!Array.<!WebInspector.ExtensionSidebarPane>} */ | |
| 48 this._sidebarPanes = []; | |
| 49 /** @type {!Array.<!WebInspector.ExtensionAuditCategory>} */ | |
| 50 this._auditCategories = []; | |
| 47 | 51 |
| 48 var commands = WebInspector.extensionAPI.Commands; | 52 var commands = WebInspector.extensionAPI.Commands; |
| 49 | 53 |
| 50 this._registerHandler(commands.AddAuditCategory, this._onAddAuditCategory.bi nd(this)); | 54 this._registerHandler(commands.AddAuditCategory, this._onAddAuditCategory.bi nd(this)); |
| 51 this._registerHandler(commands.AddAuditResult, this._onAddAuditResult.bind(t his)); | 55 this._registerHandler(commands.AddAuditResult, this._onAddAuditResult.bind(t his)); |
| 52 this._registerHandler(commands.AddConsoleMessage, this._onAddConsoleMessage. bind(this)); | 56 this._registerHandler(commands.AddConsoleMessage, this._onAddConsoleMessage. bind(this)); |
| 53 this._registerHandler(commands.AddRequestHeaders, this._onAddRequestHeaders. bind(this)); | 57 this._registerHandler(commands.AddRequestHeaders, this._onAddRequestHeaders. bind(this)); |
| 54 this._registerHandler(commands.ApplyStyleSheet, this._onApplyStyleSheet.bind (this)); | 58 this._registerHandler(commands.ApplyStyleSheet, this._onApplyStyleSheet.bind (this)); |
| 55 this._registerHandler(commands.CreatePanel, this._onCreatePanel.bind(this)); | 59 this._registerHandler(commands.CreatePanel, this._onCreatePanel.bind(this)); |
| 56 this._registerHandler(commands.CreateSidebarPane, this._onCreateSidebarPane. bind(this)); | 60 this._registerHandler(commands.CreateSidebarPane, this._onCreateSidebarPane. bind(this)); |
| (...skipping 16 matching lines...) Expand all Loading... | |
| 73 this._registerHandler(commands.Subscribe, this._onSubscribe.bind(this)); | 77 this._registerHandler(commands.Subscribe, this._onSubscribe.bind(this)); |
| 74 this._registerHandler(commands.OpenResource, this._onOpenResource.bind(this) ); | 78 this._registerHandler(commands.OpenResource, this._onOpenResource.bind(this) ); |
| 75 this._registerHandler(commands.Unsubscribe, this._onUnsubscribe.bind(this)); | 79 this._registerHandler(commands.Unsubscribe, this._onUnsubscribe.bind(this)); |
| 76 this._registerHandler(commands.UpdateButton, this._onUpdateButton.bind(this) ); | 80 this._registerHandler(commands.UpdateButton, this._onUpdateButton.bind(this) ); |
| 77 this._registerHandler(commands.UpdateAuditProgress, this._onUpdateAuditProgr ess.bind(this)); | 81 this._registerHandler(commands.UpdateAuditProgress, this._onUpdateAuditProgr ess.bind(this)); |
| 78 window.addEventListener("message", this._onWindowMessage.bind(this), false); | 82 window.addEventListener("message", this._onWindowMessage.bind(this), false); |
| 79 | 83 |
| 80 this._initExtensions(); | 84 this._initExtensions(); |
| 81 } | 85 } |
| 82 | 86 |
| 87 WebInspector.ExtensionServer.Events = { | |
| 88 SidebarPaneAdded: "SidebarPaneAdded", | |
| 89 AuditCategoryAdded: "AuditCategoryAdded" | |
| 90 } | |
| 91 | |
| 83 WebInspector.ExtensionServer.prototype = { | 92 WebInspector.ExtensionServer.prototype = { |
| 84 /** | 93 /** |
| 85 * @return {boolean} | 94 * @return {boolean} |
| 86 */ | 95 */ |
| 87 hasExtensions: function() | 96 hasExtensions: function() |
| 88 { | 97 { |
| 89 return !!Object.keys(this._registeredExtensions).length; | 98 return !!Object.keys(this._registeredExtensions).length; |
| 90 }, | 99 }, |
| 91 | 100 |
| 92 /** | 101 /** |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 126 | 135 |
| 127 _inspectedURLChanged: function(event) | 136 _inspectedURLChanged: function(event) |
| 128 { | 137 { |
| 129 this._requests = {}; | 138 this._requests = {}; |
| 130 var url = event.data; | 139 var url = event.data; |
| 131 this._postNotification(WebInspector.extensionAPI.Events.InspectedURLChan ged, url); | 140 this._postNotification(WebInspector.extensionAPI.Events.InspectedURLChan ged, url); |
| 132 }, | 141 }, |
| 133 | 142 |
| 134 | 143 |
| 135 /** | 144 /** |
| 136 * @param {!WebInspector.ExtensionAuditCategory} category | 145 * @param {string} categoryId |
| 137 * @param {!WebInspector.ExtensionAuditCategoryResults} auditResults | 146 * @param {!WebInspector.ExtensionAuditCategoryResults} auditResults |
| 138 */ | 147 */ |
| 139 startAuditRun: function(category, auditResults) | 148 startAuditRun: function(categoryId, auditResults) |
| 140 { | 149 { |
| 141 this._clientObjects[auditResults.id] = auditResults; | 150 this._clientObjects[auditResults.id()] = auditResults; |
| 142 this._postNotification("audit-started-" + category.id, auditResults.id); | 151 this._postNotification("audit-started-" + categoryId, auditResults.id()) ; |
| 143 }, | 152 }, |
| 144 | 153 |
| 145 /** | 154 /** |
| 146 * @param {!WebInspector.ExtensionAuditCategoryResults} auditResults | 155 * @param {!WebInspector.ExtensionAuditCategoryResults} auditResults |
| 147 */ | 156 */ |
| 148 stopAuditRun: function(auditResults) | 157 stopAuditRun: function(auditResults) |
| 149 { | 158 { |
| 150 delete this._clientObjects[auditResults.id]; | 159 delete this._clientObjects[auditResults.id()]; |
| 151 }, | 160 }, |
| 152 | 161 |
| 153 /** | 162 /** |
| 154 * @param {string} type | 163 * @param {string} type |
| 155 * @return {boolean} | 164 * @return {boolean} |
| 156 */ | 165 */ |
| 157 hasSubscribers: function(type) | 166 hasSubscribers: function(type) |
| 158 { | 167 { |
| 159 return !!this._subscribers[type]; | 168 return !!this._subscribers[type]; |
| 160 }, | 169 }, |
| (...skipping 119 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 280 if (!button || !(button instanceof WebInspector.ExtensionButton)) | 289 if (!button || !(button instanceof WebInspector.ExtensionButton)) |
| 281 return this._status.E_NOTFOUND(message.id); | 290 return this._status.E_NOTFOUND(message.id); |
| 282 button.update(this._expandResourcePath(port._extensionOrigin, message.ic on), message.tooltip, message.disabled); | 291 button.update(this._expandResourcePath(port._extensionOrigin, message.ic on), message.tooltip, message.disabled); |
| 283 return this._status.OK(); | 292 return this._status.OK(); |
| 284 }, | 293 }, |
| 285 | 294 |
| 286 _onCreateSidebarPane: function(message) | 295 _onCreateSidebarPane: function(message) |
| 287 { | 296 { |
| 288 if (message.panel !== "elements" && message.panel !== "sources") | 297 if (message.panel !== "elements" && message.panel !== "sources") |
| 289 return this._status.E_NOTFOUND(message.panel); | 298 return this._status.E_NOTFOUND(message.panel); |
| 290 var panel = message.panel === "elements" ? WebInspector.ElementsPanel.in stance() : WebInspector.SourcesPanel.instance(); | |
| 291 var id = message.id; | 299 var id = message.id; |
| 292 var sidebar = new WebInspector.ExtensionSidebarPane(this, message.title, id); | 300 var sidebar = new WebInspector.ExtensionSidebarPane(this, message.panel, message.title, id); |
| 301 this._sidebarPanes.push(sidebar); | |
| 293 this._clientObjects[id] = sidebar; | 302 this._clientObjects[id] = sidebar; |
| 294 panel.addExtensionSidebarPane(id, sidebar); | 303 this.dispatchEventToListeners(WebInspector.ExtensionServer.Events.Sideba rPaneAdded, sidebar); |
| 295 | 304 |
| 296 return this._status.OK(); | 305 return this._status.OK(); |
| 297 }, | 306 }, |
| 298 | 307 |
| 308 /** | |
| 309 * @return {!Array.<!WebInspector.ExtensionSidebarPane>} | |
| 310 */ | |
| 311 sidebarPanes: function() | |
| 312 { | |
| 313 return this._sidebarPanes; | |
| 314 }, | |
| 315 | |
| 299 _onSetSidebarHeight: function(message) | 316 _onSetSidebarHeight: function(message) |
| 300 { | 317 { |
| 301 var sidebar = this._clientObjects[message.id]; | 318 var sidebar = this._clientObjects[message.id]; |
| 302 if (!sidebar) | 319 if (!sidebar) |
| 303 return this._status.E_NOTFOUND(message.id); | 320 return this._status.E_NOTFOUND(message.id); |
| 304 sidebar.setHeight(message.height); | 321 sidebar.setHeight(message.height); |
| 305 return this._status.OK(); | 322 return this._status.OK(); |
| 306 }, | 323 }, |
| 307 | 324 |
| 308 _onSetSidebarContent: function(message, port) | 325 _onSetSidebarContent: function(message, port) |
| (...skipping 291 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 600 return request._extensionRequestId; | 617 return request._extensionRequestId; |
| 601 }, | 618 }, |
| 602 | 619 |
| 603 _requestById: function(id) | 620 _requestById: function(id) |
| 604 { | 621 { |
| 605 return this._requests[id]; | 622 return this._requests[id]; |
| 606 }, | 623 }, |
| 607 | 624 |
| 608 _onAddAuditCategory: function(message, port) | 625 _onAddAuditCategory: function(message, port) |
| 609 { | 626 { |
| 610 var category = new WebInspector.ExtensionAuditCategory(this, port._exten sionOrigin, message.id, message.displayName, message.resultCount); | 627 var category = new WebInspector.ExtensionAuditCategory(port._extensionOr igin, message.id, message.displayName, message.resultCount); |
| 611 if (WebInspector.AuditsPanel.instance().getCategory(category.id)) | |
| 612 return this._status.E_EXISTS(category.id); | |
| 613 this._clientObjects[message.id] = category; | 628 this._clientObjects[message.id] = category; |
| 614 WebInspector.AuditsPanel.instance().addCategory(category); | 629 this._auditCategories.push(category); |
| 630 this.dispatchEventToListeners(WebInspector.ExtensionServer.Events.AuditC ategoryAdded, category); | |
| 631 }, | |
| 632 | |
| 633 /** | |
| 634 * @return {!Array.<!WebInspector.ExtensionAuditCategory>} | |
| 635 */ | |
| 636 auditCategories: function() | |
| 637 { | |
| 638 return this._auditCategories; | |
| 615 }, | 639 }, |
| 616 | 640 |
| 617 _onAddAuditResult: function(message) | 641 _onAddAuditResult: function(message) |
| 618 { | 642 { |
| 619 var auditResult = this._clientObjects[message.resultId]; | 643 var auditResult = /** {!WebInspector.ExtensionAuditCategoryResults} */ ( this._clientObjects[message.resultId]); |
| 620 if (!auditResult) | 644 if (!auditResult) |
| 621 return this._status.E_NOTFOUND(message.resultId); | 645 return this._status.E_NOTFOUND(message.resultId); |
| 622 try { | 646 try { |
| 623 auditResult.addResult(message.displayName, message.description, mess age.severity, message.details); | 647 auditResult.addResult(message.displayName, message.description, mess age.severity, message.details); |
| 624 } catch (e) { | 648 } catch (e) { |
| 625 return e; | 649 return e; |
| 626 } | 650 } |
| 627 return this._status.OK(); | 651 return this._status.OK(); |
| 628 }, | 652 }, |
| 629 | 653 |
| 630 _onUpdateAuditProgress: function(message) | 654 _onUpdateAuditProgress: function(message) |
| 631 { | 655 { |
| 632 var auditResult = this._clientObjects[message.resultId]; | 656 var auditResult = /** {!WebInspector.ExtensionAuditCategoryResults} */ ( this._clientObjects[message.resultId]); |
| 633 if (!auditResult) | 657 if (!auditResult) |
| 634 return this._status.E_NOTFOUND(message.resultId); | 658 return this._status.E_NOTFOUND(message.resultId); |
| 635 auditResult.updateProgress(Math.min(Math.max(0, message.progress), 1)); | 659 auditResult.updateProgress(Math.min(Math.max(0, message.progress), 1)); |
| 636 }, | 660 }, |
| 637 | 661 |
| 638 _onStopAuditCategoryRun: function(message) | 662 _onStopAuditCategoryRun: function(message) |
| 639 { | 663 { |
| 640 var auditRun = this._clientObjects[message.resultId]; | 664 var auditRun = /** {!WebInspector.ExtensionAuditCategoryResults} */ (thi s._clientObjects[message.resultId]); |
| 641 if (!auditRun) | 665 if (!auditRun) |
| 642 return this._status.E_NOTFOUND(message.resultId); | 666 return this._status.E_NOTFOUND(message.resultId); |
| 643 auditRun.done(); | 667 auditRun.done(); |
| 644 }, | 668 }, |
| 645 | 669 |
| 646 _onForwardKeyboardEvent: function(message) | 670 _onForwardKeyboardEvent: function(message) |
| 647 { | 671 { |
| 648 const Esc = "U+001B"; | 672 const Esc = "U+001B"; |
| 649 message.entries.forEach(handleEventEntry); | 673 message.entries.forEach(handleEventEntry); |
| 650 | 674 |
| (...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 705 /** | 729 /** |
| 706 * @this {WebInspector.ExtensionServer} | 730 * @this {WebInspector.ExtensionServer} |
| 707 */ | 731 */ |
| 708 function onElementsSubscriptionStopped() | 732 function onElementsSubscriptionStopped() |
| 709 { | 733 { |
| 710 WebInspector.notifications.removeEventListener(WebInspector.Notifica tionService.Events.SelectedNodeChanged, this._notifyElementsSelectionChanged, th is); | 734 WebInspector.notifications.removeEventListener(WebInspector.Notifica tionService.Events.SelectedNodeChanged, this._notifyElementsSelectionChanged, th is); |
| 711 } | 735 } |
| 712 | 736 |
| 713 this._registerSubscriptionHandler(WebInspector.extensionAPI.Events.Panel ObjectSelected + "elements", | 737 this._registerSubscriptionHandler(WebInspector.extensionAPI.Events.Panel ObjectSelected + "elements", |
| 714 onElementsSubscriptionStarted.bind(this), onElementsSubscriptionStop ped.bind(this)); | 738 onElementsSubscriptionStarted.bind(this), onElementsSubscriptionStop ped.bind(this)); |
| 715 | |
| 716 this._registerAutosubscriptionHandler(WebInspector.extensionAPI.Events.P anelObjectSelected + "sources", | |
| 717 WebInspector.notifications, | |
| 718 WebInspector.SourceFrame.Events.SelectionChanged, | |
| 719 this._notifySourceFrameSelectionChanged); | |
| 720 this._registerResourceContentCommittedHandler(this._notifyUISourceCodeCo ntentCommitted); | 739 this._registerResourceContentCommittedHandler(this._notifyUISourceCodeCo ntentCommitted); |
| 721 | 740 |
| 722 WebInspector.targetManager.addEventListener(WebInspector.TargetManager.E vents.InspectedURLChanged, | 741 WebInspector.targetManager.addEventListener(WebInspector.TargetManager.E vents.InspectedURLChanged, |
| 723 this._inspectedURLChanged, this); | 742 this._inspectedURLChanged, this); |
| 724 | 743 |
| 725 InspectorExtensionRegistry.getExtensionsAsync(); | 744 InspectorExtensionRegistry.getExtensionsAsync(); |
| 726 }, | 745 }, |
| 727 | 746 |
| 728 /** | |
| 729 * @param {!WebInspector.TextRange} textRange | |
| 730 */ | |
| 731 _makeSourceSelection: function(textRange) | |
| 732 { | |
| 733 var sourcesPanel = WebInspector.SourcesPanel.instance(); | |
| 734 var selection = { | |
| 735 startLine: textRange.startLine, | |
| 736 startColumn: textRange.startColumn, | |
| 737 endLine: textRange.endLine, | |
| 738 endColumn: textRange.endColumn, | |
| 739 url: sourcesPanel.sourcesView().currentUISourceCode().uri() | |
| 740 }; | |
| 741 | |
| 742 return selection; | |
| 743 }, | |
| 744 | |
| 745 _notifySourceFrameSelectionChanged: function(event) | |
|
caseq
2014/10/20 09:20:10
Please state the fact that we remove support for s
| |
| 746 { | |
| 747 this._postNotification(WebInspector.extensionAPI.Events.PanelObjectSelec ted + "sources", this._makeSourceSelection(event.data)); | |
| 748 }, | |
| 749 | |
| 750 _notifyConsoleMessageAdded: function(event) | 747 _notifyConsoleMessageAdded: function(event) |
| 751 { | 748 { |
| 752 this._postNotification(WebInspector.extensionAPI.Events.ConsoleMessageAd ded, this._makeConsoleMessage(event.data)); | 749 this._postNotification(WebInspector.extensionAPI.Events.ConsoleMessageAd ded, this._makeConsoleMessage(event.data)); |
| 753 }, | 750 }, |
| 754 | 751 |
| 755 _notifyResourceAdded: function(event) | 752 _notifyResourceAdded: function(event) |
| 756 { | 753 { |
| 757 var uiSourceCode = /** @type {!WebInspector.UISourceCode} */ (event.data ); | 754 var uiSourceCode = /** @type {!WebInspector.UISourceCode} */ (event.data ); |
| 758 this._postNotification(WebInspector.extensionAPI.Events.ResourceAdded, t his._makeResource(uiSourceCode)); | 755 this._postNotification(WebInspector.extensionAPI.Events.ResourceAdded, t his._makeResource(uiSourceCode)); |
| 759 }, | 756 }, |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 772 }, | 769 }, |
| 773 | 770 |
| 774 _notifyElementsSelectionChanged: function() | 771 _notifyElementsSelectionChanged: function() |
| 775 { | 772 { |
| 776 this._postNotification(WebInspector.extensionAPI.Events.PanelObjectSelec ted + "elements"); | 773 this._postNotification(WebInspector.extensionAPI.Events.PanelObjectSelec ted + "elements"); |
| 777 }, | 774 }, |
| 778 | 775 |
| 779 /** | 776 /** |
| 780 * @param {!Array.<!ExtensionDescriptor>} extensionInfos | 777 * @param {!Array.<!ExtensionDescriptor>} extensionInfos |
| 781 */ | 778 */ |
| 782 addExtensions: function(extensionInfos) | 779 _addExtensions: function(extensionInfos) |
| 783 { | 780 { |
| 784 extensionInfos.forEach(this._addExtension, this); | 781 extensionInfos.forEach(this._addExtension, this); |
| 785 }, | 782 }, |
| 786 | 783 |
| 787 /** | 784 /** |
| 788 * @param {!ExtensionDescriptor} extensionInfo | 785 * @param {!ExtensionDescriptor} extensionInfo |
| 789 */ | 786 */ |
| 790 _addExtension: function(extensionInfo) | 787 _addExtension: function(extensionInfo) |
| 791 { | 788 { |
| 792 const urlOriginRegExp = new RegExp("([^:]+:\/\/[^/]*)\/"); // Can't use regexp literal here, MinJS chokes on it. | 789 const urlOriginRegExp = new RegExp("([^:]+:\/\/[^/]*)\/"); // Can't use regexp literal here, MinJS chokes on it. |
| (...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1002 context = executionContext; | 999 context = executionContext; |
| 1003 | 1000 |
| 1004 } | 1001 } |
| 1005 if (!context) | 1002 if (!context) |
| 1006 return this._status.E_FAILED(frame.url + " has no execution context"); | 1003 return this._status.E_FAILED(frame.url + " has no execution context"); |
| 1007 } | 1004 } |
| 1008 | 1005 |
| 1009 contextId = context.id; | 1006 contextId = context.id; |
| 1010 } | 1007 } |
| 1011 RuntimeAgent.evaluate(expression, "extension", exposeCommandLineAPI, tru e, contextId, returnByValue, false, callback); | 1008 RuntimeAgent.evaluate(expression, "extension", exposeCommandLineAPI, tru e, contextId, returnByValue, false, callback); |
| 1012 } | 1009 }, |
| 1010 | |
| 1011 __proto__: WebInspector.Object.prototype | |
| 1013 } | 1012 } |
| 1014 | 1013 |
| 1015 /** | 1014 /** |
| 1016 * @constructor | 1015 * @constructor |
| 1017 * @param {string} name | 1016 * @param {string} name |
| 1018 * @param {string} title | 1017 * @param {string} title |
| 1019 * @param {!WebInspector.Panel} panel | 1018 * @param {!WebInspector.Panel} panel |
| 1020 * @implements {WebInspector.PanelDescriptor} | 1019 * @implements {WebInspector.PanelDescriptor} |
| 1021 */ | 1020 */ |
| 1022 WebInspector.ExtensionServerPanelDescriptor = function(name, title, panel) | 1021 WebInspector.ExtensionServerPanelDescriptor = function(name, title, panel) |
| (...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 1083 this.E_FAILED = makeStatus.bind(null, "E_FAILED", "Operation failed: %s"); | 1082 this.E_FAILED = makeStatus.bind(null, "E_FAILED", "Operation failed: %s"); |
| 1084 } | 1083 } |
| 1085 | 1084 |
| 1086 /** | 1085 /** |
| 1087 * @typedef {{code: string, description: string, details: !Array.<*>}} | 1086 * @typedef {{code: string, description: string, details: !Array.<*>}} |
| 1088 */ | 1087 */ |
| 1089 WebInspector.ExtensionStatus.Record; | 1088 WebInspector.ExtensionStatus.Record; |
| 1090 | 1089 |
| 1091 WebInspector.extensionAPI = {}; | 1090 WebInspector.extensionAPI = {}; |
| 1092 defineCommonExtensionSymbols(WebInspector.extensionAPI); | 1091 defineCommonExtensionSymbols(WebInspector.extensionAPI); |
| 1092 | |
| 1093 WebInspector.addExtensions = function(extensions) | |
| 1094 { | |
| 1095 if (WebInspector.extensionServer._overridePlatformExtensionAPIForTest) | |
| 1096 window.buildPlatformExtensionAPI = WebInspector.extensionServer._overrid ePlatformExtensionAPIForTest; | |
| 1097 WebInspector.extensionServer._addExtensions(extensions); | |
| 1098 } | |
| 1099 | |
| 1100 WebInspector.setInspectedTabId = function(tabId) | |
| 1101 { | |
| 1102 WebInspector._inspectedTabId = tabId; | |
| 1103 } | |
| OLD | NEW |