From e146b7aad664067be3066e5ac8bfbb73fbadcd76 Mon Sep 17 00:00:00 2001 From: Alex Dima Date: Wed, 7 Nov 2018 20:54:53 +0100 Subject: [PATCH] Tweak IExtHostContext --- src/vs/workbench/api/node/extHost.protocol.ts | 2 ++ .../services/extensions/electron-browser/extensionService.ts | 4 +++- src/vs/workbench/test/electron-browser/api/testRPCProtocol.ts | 3 +++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index db6851ab955..8d3b6988fb1 100644 --- a/src/vs/workbench/api/node/extHost.protocol.ts +++ b/src/vs/workbench/api/node/extHost.protocol.ts @@ -68,6 +68,7 @@ export interface IInitData { telemetryInfo: ITelemetryInfo; logLevel: LogLevel; logsLocation: URI; + remoteAuthority?: string | null; } export interface IConfigurationInitData extends IConfigurationData { @@ -80,6 +81,7 @@ export interface IWorkspaceConfigurationChangeEventData { } export interface IExtHostContext extends IRPCProtocol { + remoteAuthority: string; } export interface IMainContext extends IRPCProtocol { diff --git a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts index 63bc417a0c9..9eaf262d9bf 100644 --- a/src/vs/workbench/services/extensions/electron-browser/extensionService.ts +++ b/src/vs/workbench/services/extensions/electron-browser/extensionService.ts @@ -133,6 +133,7 @@ export class ExtensionHostProcessManager extends Disposable { constructor( extensionHostProcessWorker: IExtensionHostStarter, + private readonly _remoteAuthority: string, initialActivationEvents: string[], @IInstantiationService private readonly _instantiationService: IInstantiationService, @IEnvironmentService private readonly _environmentService: IEnvironmentService, @@ -193,6 +194,7 @@ export class ExtensionHostProcessManager extends Disposable { this._extensionHostProcessRPCProtocol = new RPCProtocol(protocol, logger); this._register(this._extensionHostProcessRPCProtocol.onDidChangeResponsiveState((responsiveState: ResponsiveState) => this._onDidChangeResponsiveState.fire(responsiveState))); const extHostContext: IExtHostContext = { + remoteAuthority: this._remoteAuthority, getProxy: (identifier: ProxyIdentifier): T => this._extensionHostProcessRPCProtocol.getProxy(identifier), set: (identifier: ProxyIdentifier, instance: R): R => this._extensionHostProcessRPCProtocol.set(identifier, instance), assertRegistered: (identifiers: ProxyIdentifier[]): void => this._extensionHostProcessRPCProtocol.assertRegistered(identifiers), @@ -384,7 +386,7 @@ export class ExtensionService extends Disposable implements IExtensionService { this._stopExtensionHostProcess(); const extHostProcessWorker = this._instantiationService.createInstance(ExtensionHostProcessWorker, this.getExtensions(), this._extensionHostLogsLocation); - const extHostProcessManager = this._instantiationService.createInstance(ExtensionHostProcessManager, extHostProcessWorker, initialActivationEvents); + const extHostProcessManager = this._instantiationService.createInstance(ExtensionHostProcessManager, extHostProcessWorker, null, initialActivationEvents); extHostProcessManager.onDidCrash(([code, signal]) => this._onExtensionHostCrashed(code, signal)); extHostProcessManager.onDidChangeResponsiveState((responsiveState) => this._onResponsiveStateChanged(responsiveState)); this._extensionHostProcessManagers.push(extHostProcessManager); diff --git a/src/vs/workbench/test/electron-browser/api/testRPCProtocol.ts b/src/vs/workbench/test/electron-browser/api/testRPCProtocol.ts index f7aaaec84b8..d2a5259f9f1 100644 --- a/src/vs/workbench/test/electron-browser/api/testRPCProtocol.ts +++ b/src/vs/workbench/test/electron-browser/api/testRPCProtocol.ts @@ -10,6 +10,7 @@ import { isThenable } from 'vs/base/common/async'; export function SingleProxyRPCProtocol(thing: any): IExtHostContext { return { + remoteAuthority: null, getProxy(): T { return thing; }, @@ -22,6 +23,8 @@ export function SingleProxyRPCProtocol(thing: any): IExtHostContext { export class TestRPCProtocol implements IExtHostContext { + public remoteAuthority = null; + private _callCountValue: number = 0; private _idle: Promise; private _completeIdle: Function;