diff --git a/src/vs/workbench/api/node/extHost.protocol.ts b/src/vs/workbench/api/node/extHost.protocol.ts index db6851ab955908e151a7437340b93f92d3d336c5..8d3b6988fb15b2c5008c094a964f5b2100327374 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 63bc417a0c9445c1a20204d494f1996404d592a8..9eaf262d9bf560149d4b5c5dad5d21125f78a74b 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 f7aaaec84b85b7abc754703b1c75e166316459b2..d2a5259f9f12baef8712f091660680bc645f51ff 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;