未验证 提交 f8d1c07e 编写于 作者: J João Moreno

use createChannelReceiver, createChannelSender

上级 1e0af437
......@@ -89,7 +89,6 @@ import { isLaunchedFromCli } from 'vs/platform/environment/node/argvHelper';
import { isEqualOrParent } from 'vs/base/common/extpath';
import { CancellationToken, CancellationTokenSource } from 'vs/base/common/cancellation';
import { IExtensionUrlTrustService } from 'vs/platform/extensionManagement/common/extensionUrlTrust';
import { ExtensionUrlTrustChannel } from 'vs/platform/extensionManagement/common/extensionUrlTrustIpc';
import { ExtensionUrlTrustService } from 'vs/platform/extensionManagement/node/extensionUrlTrustService';
export class CodeApplication extends Disposable {
......@@ -640,7 +639,7 @@ export class CodeApplication extends Disposable {
electronIpcServer.registerChannel('url', urlChannel);
const extensionUrlTrustService = accessor.get(IExtensionUrlTrustService);
const extensionUrlTrustChannel = new ExtensionUrlTrustChannel(extensionUrlTrustService);
const extensionUrlTrustChannel = createChannelReceiver(extensionUrlTrustService);
electronIpcServer.registerChannel('extensionUrlTrust', extensionUrlTrustChannel);
const webviewManagerService = accessor.get(IWebviewManagerService);
......
/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { IChannel, IServerChannel } from 'vs/base/parts/ipc/common/ipc';
import { Event } from 'vs/base/common/event';
import { IExtensionUrlTrustService } from 'vs/platform/extensionManagement/common/extensionUrlTrust';
export class ExtensionUrlTrustChannel implements IServerChannel {
constructor(private service: IExtensionUrlTrustService) { }
listen(): Event<any> {
throw new Error('No events supported');
}
call(_: any, command: string, arg?: any): Promise<any> {
switch (command) {
case 'isExtensionUrlTrusted': return this.service.isExtensionUrlTrusted(arg[0], arg[1]);
}
throw new Error('Invalid call');
}
}
export class ExtensionUrlTrustChannelClient implements IExtensionUrlTrustService {
declare readonly _serviceBrand: undefined;
constructor(private readonly channel: IChannel) { }
isExtensionUrlTrusted(extensionId: string, url: string): Promise<boolean> {
return this.channel.call('isExtensionUrlTrusted', [extensionId, url]);
}
}
......@@ -3,17 +3,22 @@
* Licensed under the MIT License. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
import { createChannelSender } from 'vs/base/parts/ipc/common/ipc';
import { IExtensionUrlTrustService } from 'vs/platform/extensionManagement/common/extensionUrlTrust';
import { ExtensionUrlTrustChannelClient } from 'vs/platform/extensionManagement/common/extensionUrlTrustIpc';
import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
import { IMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService';
class ExtensionUrlTrustService extends ExtensionUrlTrustChannelClient {
class ExtensionUrlTrustService implements IExtensionUrlTrustService {
declare readonly _serviceBrand: undefined;
private service: IExtensionUrlTrustService;
constructor(@IMainProcessService mainProcessService: IMainProcessService) {
super(mainProcessService.getChannel('extensionUrlTrust'));
this.service = createChannelSender<IExtensionUrlTrustService>(mainProcessService.getChannel('extensionUrlTrust'));
}
isExtensionUrlTrusted(extensionId: string, url: string): Promise<boolean> {
return this.service.isExtensionUrlTrusted(extensionId, url);
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册