[module.json extensions] @UI.ContextMenu.Provider pt. 2

Bug: 1134103
Change-Id: Ib61ab27e45e81b648c803de6ed2f6ad5c38da73e
Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/2678204
Commit-Queue: Andres Olivares <andoli@chromium.org>
Reviewed-by: Tim van der Lippe <tvanderlippe@chromium.org>
This commit is contained in:
Andres Olivares
2021-02-08 14:58:49 +00:00
committed by Commit Bot
parent 983f142ef2
commit 9e586eb2de
6 changed files with 67 additions and 20 deletions
+16
View File
@@ -843,10 +843,26 @@ export class NetworkPanel extends UI.Panel.Panel {
export const displayScreenshotDelay = 1000;
/**
* @type {ContextMenuProvider}
*/
let contextMenuProviderInstance;
/**
* @implements {UI.ContextMenu.Provider}
*/
export class ContextMenuProvider {
/**
* @param {{forceNew: ?boolean}} opts
*/
static instance(opts = {forceNew: null}) {
const {forceNew} = opts;
if (!contextMenuProviderInstance || forceNew) {
contextMenuProviderInstance = new ContextMenuProvider();
}
return contextMenuProviderInstance;
}
/**
* @override
* @param {!Event} event
-9
View File
@@ -1,14 +1,5 @@
{
"extensions": [
{
"type": "@UI.ContextMenu.Provider",
"contextTypes": [
"SDK.NetworkRequest",
"SDK.Resource",
"Workspace.UISourceCode"
],
"className": "Network.NetworkPanel.ContextMenuProvider"
},
{
"type": "@Common.Revealer",
"contextTypes": [
+17
View File
@@ -4,7 +4,9 @@
import * as Common from '../common/common.js';
import * as Root from '../root/root.js';
import * as SDK from '../sdk/sdk.js';
import * as UI from '../ui/ui.js';
import * as Workspace from '../workspace/workspace.js';
// eslint-disable-next-line rulesdir/es_modules_import
import type * as Network from './network.js';
@@ -335,3 +337,18 @@ UI.ViewManager.registerLocationResolver({
return Network.NetworkPanel.NetworkPanel.instance();
},
});
UI.ContextMenu.registerProvider({
contextTypes() {
return [
SDK.NetworkRequest.NetworkRequest,
SDK.Resource.Resource,
Workspace.UISourceCode.UISourceCode,
];
},
async loadProvider() {
const Network = await loadNetworkModule();
return Network.NetworkPanel.ContextMenuProvider.instance();
},
experiment: undefined,
});
@@ -33,10 +33,27 @@ export const UIStrings = {
};
const str_ = i18n.i18n.registerUIStrings('persistence/PersistenceActions.js', UIStrings);
const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
/**
* @type {ContextMenuProvider}
*/
let contextMenuProviderInstance;
/**
* @implements {UI.ContextMenu.Provider}
*/
export class ContextMenuProvider {
/**
* @param {{forceNew: ?boolean}} opts
*/
static instance(opts = {forceNew: null}) {
const {forceNew} = opts;
if (!contextMenuProviderInstance || forceNew) {
contextMenuProviderInstance = new ContextMenuProvider();
}
return contextMenuProviderInstance;
}
/**
* @override
* @param {!Event} event
-11
View File
@@ -4,17 +4,6 @@
"components",
"sdk"
],
"extensions": [
{
"type": "@UI.ContextMenu.Provider",
"contextTypes": [
"Workspace.UISourceCode",
"SDK.Resource",
"SDK.NetworkRequest"
],
"className": "Persistence.PersistenceActions.ContextMenuProvider"
}
],
"modules": [
"persistence.js",
"persistence-legacy.js",
+17
View File
@@ -5,7 +5,9 @@
import * as Common from '../common/common.js';
import * as i18n from '../i18n/i18n.js';
import * as Root from '../root/root.js';
import * as SDK from '../sdk/sdk.js';
import * as UI from '../ui/ui.js';
import * as Workspace from '../workspace/workspace.js';
// eslint-disable-next-line rulesdir/es_modules_import
import type * as Persistence from './persistence.js';
@@ -102,3 +104,18 @@ Common.Settings.registerSettingExtension({
},
],
});
UI.ContextMenu.registerProvider({
contextTypes() {
return [
Workspace.UISourceCode.UISourceCode,
SDK.Resource.Resource,
SDK.NetworkRequest.NetworkRequest,
];
},
async loadProvider() {
const Persistence = await loadPersistenceModule();
return Persistence.PersistenceActions.ContextMenuProvider.instance();
},
experiment: undefined,
});