mirror of
https://github.com/react/react-native-devtools-frontend.git
synced 2026-10-11 14:14:36 +08:00
[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:
committed by
Commit Bot
parent
983f142ef2
commit
9e586eb2de
@@ -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
|
||||
|
||||
@@ -1,14 +1,5 @@
|
||||
{
|
||||
"extensions": [
|
||||
{
|
||||
"type": "@UI.ContextMenu.Provider",
|
||||
"contextTypes": [
|
||||
"SDK.NetworkRequest",
|
||||
"SDK.Resource",
|
||||
"Workspace.UISourceCode"
|
||||
],
|
||||
"className": "Network.NetworkPanel.ContextMenuProvider"
|
||||
},
|
||||
{
|
||||
"type": "@Common.Revealer",
|
||||
"contextTypes": [
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -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,
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user