提交 c0039fa3 编写于 作者: P Pine Wu

Drop unneeded action registration

上级 af13ba22
...@@ -67,9 +67,12 @@ export class OpenerService implements IOpenerService { ...@@ -67,9 +67,12 @@ export class OpenerService implements IOpenerService {
} }
if (equalsIgnoreCase(scheme, Schemas.http) || equalsIgnoreCase(scheme, Schemas.https)) { if (equalsIgnoreCase(scheme, Schemas.http) || equalsIgnoreCase(scheme, Schemas.https)) {
let trustedDomains: string[] = []; let trustedDomains: string[] = ['https://code.visualstudio.com'];
try { try {
trustedDomains = JSON.parse(this._storageService.get('http.trustedDomains', StorageScope.GLOBAL, '[]')); const trustedDomainsSrc = this._storageService.get('http.trustedDomains', StorageScope.GLOBAL);
if (trustedDomainsSrc) {
trustedDomains = JSON.parse(trustedDomainsSrc);
}
} catch (err) { } } catch (err) { }
const domainToOpen = `${scheme}://${authority}`; const domainToOpen = `${scheme}://${authority}`;
...@@ -96,7 +99,7 @@ export class OpenerService implements IOpenerService { ...@@ -96,7 +99,7 @@ export class OpenerService implements IOpenerService {
if (choice === 0) { if (choice === 0) {
return this.openExternal(resource); return this.openExternal(resource);
} else if (choice === 2) { } else if (choice === 2) {
return this._commandService.executeCommand('_workbench.action.configureTrustedDomains', domainToOpen).then((pickedDomains: string[]) => { return this._commandService.executeCommand('workbench.action.configureTrustedDomains', domainToOpen).then((pickedDomains: string[]) => {
if (pickedDomains.indexOf(domainToOpen) !== -1) { if (pickedDomains.indexOf(domainToOpen) !== -1) {
return this.openExternal(resource); return this.openExternal(resource);
} }
......
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
import { localize } from 'vs/nls'; import { localize } from 'vs/nls';
import { SyncActionDescriptor } from 'vs/platform/actions/common/actions'; import { SyncActionDescriptor, MenuRegistry, MenuId } from 'vs/platform/actions/common/actions';
import { Registry } from 'vs/platform/registry/common/platform'; import { Registry } from 'vs/platform/registry/common/platform';
import { Extensions as ActionExtensions, IWorkbenchActionRegistry } from 'vs/workbench/common/actions'; import { Extensions as ActionExtensions, IWorkbenchActionRegistry } from 'vs/workbench/common/actions';
import { IURLService } from 'vs/platform/url/common/url'; import { IURLService } from 'vs/platform/url/common/url';
...@@ -13,6 +13,7 @@ import { URI } from 'vs/base/common/uri'; ...@@ -13,6 +13,7 @@ import { URI } from 'vs/base/common/uri';
import { Action } from 'vs/base/common/actions'; import { Action } from 'vs/base/common/actions';
import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage';
import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { CommandsRegistry } from 'vs/platform/commands/common/commands';
import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation';
export class OpenUrlAction extends Action { export class OpenUrlAction extends Action {
...@@ -42,12 +43,14 @@ Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions).registe ...@@ -42,12 +43,14 @@ Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions).registe
localize('developer', 'Developer') localize('developer', 'Developer')
); );
const VSCODE_DOMAIN = 'https://code.visualstudio.com';
const configureTrustedDomainsHandler = ( const configureTrustedDomainsHandler = (
quickInputService: IQuickInputService, quickInputService: IQuickInputService,
storageService: IStorageService, storageService: IStorageService,
domainToConfigure?: string domainToConfigure?: string
) => { ) => {
let trustedDomains: string[] = ['https://code.visualstudio.com']; let trustedDomains: string[] = [VSCODE_DOMAIN];
try { try {
const trustedDomainsSrc = storageService.get('http.trustedDomains', StorageScope.GLOBAL); const trustedDomainsSrc = storageService.get('http.trustedDomains', StorageScope.GLOBAL);
...@@ -75,7 +78,7 @@ const configureTrustedDomainsHandler = ( ...@@ -75,7 +78,7 @@ const configureTrustedDomainsHandler = (
]; ];
let domainToConfigureItem: IQuickPickItem | undefined = undefined; let domainToConfigureItem: IQuickPickItem | undefined = undefined;
if (domainToConfigure) { if (domainToConfigure && trustedDomains.indexOf(domainToConfigure) === -1) {
domainToConfigureItem = { domainToConfigureItem = {
type: 'item', type: 'item',
label: domainToConfigure, label: domainToConfigure,
...@@ -104,43 +107,24 @@ const configureTrustedDomainsHandler = ( ...@@ -104,43 +107,24 @@ const configureTrustedDomainsHandler = (
}); });
}; };
export class ConfigureTrustedDomainsAction extends Action { const configureTrustedDomainCommand = {
id: 'workbench.action.configureTrustedDomains',
static readonly ID = 'workbench.action.configureTrustedDomains';
static readonly LABEL = localize('configureTrustedDomains', "Configure Trusted Domains");
constructor(
id: string,
label: string,
@IQuickInputService private readonly quickInputService: IQuickInputService,
@IStorageService private readonly storageService: IStorageService
) {
super(id, label);
}
run(): Promise<any> {
return configureTrustedDomainsHandler(this.quickInputService, this.storageService);
}
}
Registry.as<IWorkbenchActionRegistry>(ActionExtensions.WorkbenchActions).registerWorkbenchAction(
new SyncActionDescriptor(
ConfigureTrustedDomainsAction,
ConfigureTrustedDomainsAction.ID,
ConfigureTrustedDomainsAction.LABEL
),
'Configure Trusted Domains'
);
CommandsRegistry.registerCommand({
id: '_workbench.action.configureTrustedDomains',
description: { description: {
description: 'Configure Trusted Domains', description: localize('configureTrustedDomains', 'Configure Trusted Domains'),
args: [{ name: 'domainToConfigure', schema: { type: 'string' } }] args: [{ name: 'domainToConfigure', schema: { type: 'string' } }]
}, },
handler: (accessor, domainToConfigure?: string) => { handler: (accessor: ServicesAccessor, domainToConfigure?: string) => {
const quickInputService = accessor.get(IQuickInputService); const quickInputService = accessor.get(IQuickInputService);
const storageService = accessor.get(IStorageService); const storageService = accessor.get(IStorageService);
return configureTrustedDomainsHandler(quickInputService, storageService, domainToConfigure); return configureTrustedDomainsHandler(quickInputService, storageService, domainToConfigure);
} }
};
CommandsRegistry.registerCommand(configureTrustedDomainCommand);
MenuRegistry.appendMenuItem(MenuId.CommandPalette, {
command: {
id: configureTrustedDomainCommand.id,
title: configureTrustedDomainCommand.description.description
}
}); });
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册