Migrate extensions/ to ESM internally

Bug: 1006759
Change-Id: I5a21c9cc7510dad06903f24f06a0cde23473f532
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/1991633
Commit-Queue: Tim van der Lippe <tvanderlippe@chromium.org>
Reviewed-by: Paul Lewis <aerotwist@chromium.org>
This commit is contained in:
Tim van der Lippe
2020-01-10 12:44:46 +00:00
committed by Commit Bot
parent 084cdcea89
commit a611092efe
9 changed files with 91 additions and 100 deletions
+2
View File
@@ -658,6 +658,7 @@ all_devtools_modules = [
"front_end/extensions/ExtensionAPI.js",
"front_end/extensions/ExtensionPanel.js",
"front_end/extensions/extensions.js",
"front_end/extensions/extensions-legacy.js",
"front_end/extensions/ExtensionServer.js",
"front_end/extensions/ExtensionTraceProvider.js",
"front_end/extensions/ExtensionView.js",
@@ -1527,6 +1528,7 @@ copied_devtools_modules = [
"$resources_out_dir/extensions/ExtensionAPI.js",
"$resources_out_dir/extensions/ExtensionPanel.js",
"$resources_out_dir/extensions/extensions.js",
"$resources_out_dir/extensions/extensions-legacy.js",
"$resources_out_dir/extensions/ExtensionServer.js",
"$resources_out_dir/extensions/ExtensionTraceProvider.js",
"$resources_out_dir/extensions/ExtensionView.js",
+1 -10
View File
@@ -28,7 +28,7 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
function defineCommonExtensionSymbols(apiPrivate) {
export function defineCommonExtensionSymbols(apiPrivate) {
if (!apiPrivate.panels) {
apiPrivate.panels = {};
}
@@ -858,12 +858,3 @@ self.buildExtensionAPIInjectedScript = function(extensionInfo, inspectedTabId, t
'(' + self.injectedExtensionAPI.toString() + ')(' + argumentsJSON + ',' + testHook + ', injectedScriptId);' +
'})';
};
/* Legacy exported object */
self.Extensions = self.Extensions || {};
/* Legacy exported object */
Extensions = Extensions || {};
Extensions.extensionAPI = {};
defineCommonExtensionSymbols(Extensions.extensionAPI);
+11 -22
View File
@@ -27,13 +27,17 @@
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import {ExtensionServer} from './ExtensionServer.js'; // eslint-disable-line no-unused-vars
import {ExtensionNotifierView, ExtensionView} from './ExtensionView.js';
/**
* @implements {UI.Searchable}
* @unrestricted
*/
export default class ExtensionPanel extends UI.Panel {
export class ExtensionPanel extends UI.Panel {
/**
* @param {!Extensions.ExtensionServer} server
* @param {!ExtensionServer} server
* @param {string} panelName
* @param {string} id
* @param {string} pageURL
@@ -48,7 +52,7 @@ export default class ExtensionPanel extends UI.Panel {
this._searchableView = new UI.SearchableView(this);
this._searchableView.show(this.element);
const extensionView = new Extensions.ExtensionView(server, this._id, pageURL, 'extension');
const extensionView = new ExtensionView(server, this._id, pageURL, 'extension');
extensionView.show(this._searchableView.element);
}
@@ -123,7 +127,7 @@ export default class ExtensionPanel extends UI.Panel {
*/
export class ExtensionButton {
/**
* @param {!Extensions.ExtensionServer} server
* @param {!ExtensionServer} server
* @param {string} id
* @param {string} iconURL
* @param {string=} tooltip
@@ -168,7 +172,7 @@ export class ExtensionButton {
*/
export class ExtensionSidebarPane extends UI.SimpleView {
/**
* @param {!Extensions.ExtensionServer} server
* @param {!ExtensionServer} server
* @param {string} panelName
* @param {string} title
* @param {string} id
@@ -230,7 +234,7 @@ export class ExtensionSidebarPane extends UI.SimpleView {
this._extensionView.detach(true);
}
this._extensionView = new Extensions.ExtensionView(this._server, this._id, url, 'extension fill');
this._extensionView = new ExtensionView(this._server, this._id, url, 'extension fill');
this._extensionView.show(this.element);
if (!this.element.style.height) {
@@ -268,7 +272,7 @@ export class ExtensionSidebarPane extends UI.SimpleView {
this._extensionView.detach(true);
delete this._extensionView;
}
this._objectPropertiesView = new Extensions.ExtensionNotifierView(this._server, this._id);
this._objectPropertiesView = new ExtensionNotifierView(this._server, this._id);
this._objectPropertiesView.show(this.element);
}
@@ -297,18 +301,3 @@ export class ExtensionSidebarPane extends UI.SimpleView {
});
}
}
/* Legacy exported object */
self.Extensions = self.Extensions || {};
/* Legacy exported object */
Extensions = Extensions || {};
/** @constructor */
Extensions.ExtensionPanel = ExtensionPanel;
/** @constructor */
Extensions.ExtensionButton = ExtensionButton;
/** @constructor */
Extensions.ExtensionSidebarPane = ExtensionSidebarPane;
+18 -38
View File
@@ -28,10 +28,13 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import {ExtensionButton, ExtensionPanel, ExtensionSidebarPane} from './ExtensionPanel.js';
import {ExtensionTraceProvider, TracingSession} from './ExtensionTraceProvider.js'; // eslint-disable-line no-unused-vars
/**
* @unrestricted
*/
export default class ExtensionServer extends Common.Object {
export class ExtensionServer extends Common.Object {
/**
* @suppressGlobalPropertiesCheck
*/
@@ -47,11 +50,11 @@ export default class ExtensionServer extends Common.Object {
this._lastRequestId = 0;
this._registeredExtensions = {};
this._status = new ExtensionStatus();
/** @type {!Array<!Extensions.ExtensionSidebarPane>} */
/** @type {!Array<!ExtensionSidebarPane>} */
this._sidebarPanes = [];
/** @type {!Array<!Extensions.ExtensionTraceProvider>} */
/** @type {!Array<!ExtensionTraceProvider>} */
this._traceProviders = [];
/** @type {!Map<string, !Extensions.TracingSession>} */
/** @type {!Map<string, !TracingSession>} */
this._traceSessions = new Map();
const commands = Extensions.extensionAPI.Commands;
@@ -149,7 +152,7 @@ export default class ExtensionServer extends Common.Object {
/**
* @param {string} providerId
* @param {string} sessionId
* @param {!Extensions.TracingSession} session
* @param {!TracingSession} session
*/
startTraceRecording(providerId, sessionId, session) {
this._traceSessions.set(sessionId, session);
@@ -270,8 +273,8 @@ export default class ExtensionServer extends Common.Object {
const page = this._expandResourcePath(port._extensionOrigin, message.page);
let persistentId = port._extensionOrigin + message.title;
persistentId = persistentId.replace(/\s/g, '');
const panelView = new ExtensionServerPanelView(
persistentId, message.title, new Extensions.ExtensionPanel(this, persistentId, id, page));
const panelView =
new ExtensionServerPanelView(persistentId, message.title, new ExtensionPanel(this, persistentId, id, page));
this._clientObjects[id] = panelView;
UI.inspectorView.addPanel(panelView);
return this._status.OK();
@@ -291,7 +294,7 @@ export default class ExtensionServer extends Common.Object {
if (!panelView || !(panelView instanceof ExtensionServerPanelView)) {
return this._status.E_NOTFOUND(message.panel);
}
const button = new Extensions.ExtensionButton(
const button = new ExtensionButton(
this, message.id, this._expandResourcePath(port._extensionOrigin, message.icon), message.tooltip,
message.disabled);
this._clientObjects[message.id] = button;
@@ -302,7 +305,7 @@ export default class ExtensionServer extends Common.Object {
* @param {!UI.Widget} panel
*/
function appendButton(panel) {
/** @type {!Extensions.ExtensionPanel} panel*/ (panel).addToolbarItem(button.toolbarButton());
/** @type {!ExtensionPanel} panel*/ (panel).addToolbarItem(button.toolbarButton());
}
return this._status.OK();
@@ -310,7 +313,7 @@ export default class ExtensionServer extends Common.Object {
_onUpdateButton(message, port) {
const button = this._clientObjects[message.id];
if (!button || !(button instanceof Extensions.ExtensionButton)) {
if (!button || !(button instanceof ExtensionButton)) {
return this._status.E_NOTFOUND(message.id);
}
button.update(this._expandResourcePath(port._extensionOrigin, message.icon), message.tooltip, message.disabled);
@@ -334,7 +337,7 @@ export default class ExtensionServer extends Common.Object {
return this._status.E_NOTFOUND(message.panel);
}
const id = message.id;
const sidebar = new Extensions.ExtensionSidebarPane(this, message.panel, message.title, id);
const sidebar = new ExtensionSidebarPane(this, message.panel, message.title, id);
this._sidebarPanes.push(sidebar);
this._clientObjects[id] = sidebar;
this.dispatchEventToListeners(Events.SidebarPaneAdded, sidebar);
@@ -343,7 +346,7 @@ export default class ExtensionServer extends Common.Object {
}
/**
* @return {!Array.<!Extensions.ExtensionSidebarPane>}
* @return {!Array.<!ExtensionSidebarPane>}
*/
sidebarPanes() {
return this._sidebarPanes;
@@ -569,15 +572,15 @@ export default class ExtensionServer extends Common.Object {
* @param {!MessagePort} port
*/
_onAddTraceProvider(message, port) {
const provider = new Extensions.ExtensionTraceProvider(
port._extensionOrigin, message.id, message.categoryName, message.categoryTooltip);
const provider =
new ExtensionTraceProvider(port._extensionOrigin, message.id, message.categoryName, message.categoryTooltip);
this._clientObjects[message.id] = provider;
this._traceProviders.push(provider);
this.dispatchEventToListeners(Events.TraceProviderAdded, provider);
}
/**
* @return {!Array<!Extensions.ExtensionTraceProvider>}
* @return {!Array<!ExtensionTraceProvider>}
*/
traceProviders() {
return this._traceProviders;
@@ -1023,26 +1026,3 @@ export class ExtensionStatus {
this.E_FAILED = makeStatus.bind(null, 'E_FAILED', 'Operation failed: %s');
}
}
/* Legacy exported object */
self.Extensions = self.Extensions || {};
/* Legacy exported object */
Extensions = Extensions || {};
/** @constructor */
Extensions.ExtensionServer = ExtensionServer;
/** @enum {symbol} */
Extensions.ExtensionServer.Events = Events;
/** @constructor */
Extensions.ExtensionStatus = ExtensionStatus;
/**
* @typedef {{code: string, description: string, details: !Array.<*>}}
*/
Extensions.ExtensionStatus.Record;
/** @type {!ExtensionServer} */
Extensions.extensionServer;
+1 -13
View File
@@ -5,7 +5,7 @@
/**
* @unrestricted
*/
export default class ExtensionTraceProvider {
export class ExtensionTraceProvider {
/**
* @param {string} extensionOrigin
* @param {string} id
@@ -66,15 +66,3 @@ export class TracingSession {
complete(url, timeOffsetMicroseconds) {
}
}
/* Legacy exported object */
self.Extensions = self.Extensions || {};
/* Legacy exported object */
Extensions = Extensions || {};
/** @constructor */
Extensions.ExtensionTraceProvider = ExtensionTraceProvider;
/** @interface */
Extensions.TracingSession = TracingSession;
+6 -16
View File
@@ -28,12 +28,14 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
import {ExtensionServer} from './ExtensionServer.js'; // eslint-disable-line no-unused-vars
/**
* @unrestricted
*/
export default class ExtensionView extends UI.Widget {
*/
export class ExtensionView extends UI.Widget {
/**
* @param {!Extensions.ExtensionServer} server
* @param {!ExtensionServer} server
* @param {string} id
* @param {string} src
* @param {string} className
@@ -91,7 +93,7 @@ export default class ExtensionView extends UI.Widget {
*/
export class ExtensionNotifierView extends UI.VBox {
/**
* @param {!Extensions.ExtensionServer} server
* @param {!ExtensionServer} server
* @param {string} id
*/
constructor(server, id) {
@@ -115,15 +117,3 @@ export class ExtensionNotifierView extends UI.VBox {
this._server.notifyViewHidden(this._id);
}
}
/* Legacy exported object */
self.Extensions = self.Extensions || {};
/* Legacy exported object */
Extensions = Extensions || {};
/** @constructor */
Extensions.ExtensionView = ExtensionView;
/** @constructor */
Extensions.ExtensionNotifierView = ExtensionNotifierView;
+49
View File
@@ -0,0 +1,49 @@
// Copyright 2019 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.
import * as ExtensionsModule from './extensions.js';
self.Extensions = self.Extensions || {};
Extensions = Extensions || {};
Extensions.extensionAPI = {};
ExtensionsModule.ExtensionAPI.defineCommonExtensionSymbols(Extensions.extensionAPI);
/** @constructor */
Extensions.ExtensionPanel = ExtensionsModule.ExtensionPanel.ExtensionPanel;
/** @constructor */
Extensions.ExtensionButton = ExtensionsModule.ExtensionPanel.ExtensionButton;
/** @constructor */
Extensions.ExtensionSidebarPane = ExtensionsModule.ExtensionPanel.ExtensionSidebarPane;
/** @constructor */
Extensions.ExtensionServer = ExtensionsModule.ExtensionServer.ExtensionServer;
/** @enum {symbol} */
Extensions.ExtensionServer.Events = ExtensionsModule.ExtensionServer.Events;
/** @constructor */
Extensions.ExtensionStatus = ExtensionsModule.ExtensionServer.ExtensionStatus;
/** @constructor */
Extensions.ExtensionTraceProvider = ExtensionsModule.ExtensionTraceProvider.ExtensionTraceProvider;
/** @interface */
Extensions.TracingSession = ExtensionsModule.ExtensionTraceProvider.TracingSession;
/** @constructor */
Extensions.ExtensionView = ExtensionsModule.ExtensionView.ExtensionView;
/** @constructor */
Extensions.ExtensionNotifierView = ExtensionsModule.ExtensionView.ExtensionNotifierView;
/**
* @typedef {{code: string, description: string, details: !Array.<*>}}
*/
Extensions.ExtensionStatus.Record;
/** @type {!Extensions.ExtensionServer} */
Extensions.extensionServer;
+2 -1
View File
@@ -2,13 +2,14 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import './ExtensionAPI.js';
import * as ExtensionAPI from './ExtensionAPI.js';
import * as ExtensionPanel from './ExtensionPanel.js';
import * as ExtensionServer from './ExtensionServer.js';
import * as ExtensionTraceProvider from './ExtensionTraceProvider.js';
import * as ExtensionView from './ExtensionView.js';
export {
ExtensionAPI,
ExtensionPanel,
ExtensionServer,
ExtensionTraceProvider,
+1
View File
@@ -7,6 +7,7 @@
"scripts": [],
"modules": [
"extensions.js",
"extensions-legacy.js",
"ExtensionAPI.js",
"ExtensionTraceProvider.js",
"ExtensionServer.js",