diff --git a/src/vs/platform/remote/browser/remoteAuthorityResolverService.ts b/src/vs/platform/remote/browser/remoteAuthorityResolverService.ts index 76bb55627fe14..dd02058056a65 100644 --- a/src/vs/platform/remote/browser/remoteAuthorityResolverService.ts +++ b/src/vs/platform/remote/browser/remoteAuthorityResolverService.ts @@ -8,6 +8,8 @@ import { Disposable } from 'vs/base/common/lifecycle'; import { RemoteAuthorities } from 'vs/base/common/network'; import { URI } from 'vs/base/common/uri'; import { IRemoteAuthorityResolverService, IRemoteConnectionData, ResolvedAuthority, ResolverResult } from 'vs/platform/remote/common/remoteAuthorityResolver'; +import { Options } from 'vs/base/common/ipc'; +import { getOptions } from 'vs/base/common/util'; export class RemoteAuthorityResolverService extends Disposable implements IRemoteAuthorityResolverService { @@ -59,11 +61,14 @@ export class RemoteAuthorityResolverService extends Disposable implements IRemot private _doResolveAuthority(authority: string): ResolverResult { const connectionToken = this._connectionTokens.get(authority) || this._connectionToken; + // NOTE@coder: Add the proxy URI to the environment for use in the remote. + const options = getOptions(); + const extensionHostEnv = { VSCODE_PROXY_URI: `${window.location.origin}${options.base}/proxy/{port}` }; if (authority.indexOf(':') >= 0) { const pieces = authority.split(':'); - return { authority: { authority, host: pieces[0], port: parseInt(pieces[1], 10), connectionToken } }; + return { authority: { authority, host: pieces[0], port: parseInt(pieces[1], 10), connectionToken }, options: { extensionHostEnv } }; } - return { authority: { authority, host: authority, port: 80, connectionToken } }; + return { authority: { authority, host: authority, port: 80, connectionToken }, options: { extensionHostEnv } }; } _clearResolvedAuthority(authority: string): void { diff --git a/src/vs/server/connection/extensionHostConnection.ts b/src/vs/server/connection/extensionHostConnection.ts index 52d21db35c5ad..bb37dfbd9fd0e 100644 --- a/src/vs/server/connection/extensionHostConnection.ts +++ b/src/vs/server/connection/extensionHostConnection.ts @@ -143,6 +143,7 @@ export class ExtensionHostConnection extends AbstractConnection { debug: this.startParams.break ? undefined : portNumber, args: ['--type=extensionHost', '--skipWorkspaceStorageLock'], env: { + ...(this.startParams.env || {}), VSCODE_AMD_ENTRYPOINT: 'vs/workbench/services/extensions/node/extensionHostProcess', VSCODE_PIPE_LOGGING: true, VSCODE_VERBOSE_LOGGING: true, diff --git a/src/vs/server/ipc/terminalProviderIpc.ts b/src/vs/server/ipc/terminalProviderIpc.ts index 5cd4e8f361ca1..6ebb24af5f1ec 100644 --- a/src/vs/server/ipc/terminalProviderIpc.ts +++ b/src/vs/server/ipc/terminalProviderIpc.ts @@ -140,11 +140,11 @@ export class TerminalProviderChannel implements IServerChannel => { const env = await this.ptyService.getEnvironment(); - env.VSCODE_IPC_HOOK_CLI = process.env['VSCODE_IPC_HOOK_CLI']!; + env.VSCODE_IPC_HOOK_CLI = process.env.VSCODE_IPC_HOOK_CLI; + env.VSCODE_PROXY_URI = args.resolverEnv?.VSCODE_PROXY_URI || process.env.VSCODE_PROXY_URI; return env; };