@@ -7,7 +7,7 @@ import * as nls from 'vs/nls';
77import * as path from 'vs/base/common/path' ;
88import { originalFSPath , joinPath } from 'vs/base/common/resources' ;
99import { Barrier , timeout } from 'vs/base/common/async' ;
10- import { dispose , toDisposable , DisposableStore } from 'vs/base/common/lifecycle' ;
10+ import { dispose , toDisposable , DisposableStore , Disposable } from 'vs/base/common/lifecycle' ;
1111import { TernarySearchTree } from 'vs/base/common/map' ;
1212import { URI } from 'vs/base/common/uri' ;
1313import { ILogService } from 'vs/platform/log/common/log' ;
@@ -26,14 +26,15 @@ import { Schemas } from 'vs/base/common/network';
2626import { VSBuffer } from 'vs/base/common/buffer' ;
2727import { ExtensionMemento } from 'vs/workbench/api/common/extHostMemento' ;
2828import { RemoteAuthorityResolverError , ExtensionMode } from 'vs/workbench/api/common/extHostTypes' ;
29- import { ResolvedAuthority , ResolvedOptions , RemoteAuthorityResolverErrorCode } from 'vs/platform/remote/common/remoteAuthorityResolver' ;
29+ import { ResolvedAuthority , ResolvedOptions , RemoteAuthorityResolverErrorCode , IRemoteConnectionData } from 'vs/platform/remote/common/remoteAuthorityResolver' ;
3030import { IInstantiationService , createDecorator } from 'vs/platform/instantiation/common/instantiation' ;
3131import { IExtHostInitDataService } from 'vs/workbench/api/common/extHostInitDataService' ;
3232import { IExtensionStoragePaths } from 'vs/workbench/api/common/extHostStoragePaths' ;
3333import { IExtHostRpcService } from 'vs/workbench/api/common/extHostRpcService' ;
3434import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection' ;
3535import { IExtHostTunnelService } from 'vs/workbench/api/common/extHostTunnelService' ;
3636import { IExtHostTerminalService } from 'vs/workbench/api/common/extHostTerminalService' ;
37+ import { Emitter , Event } from 'vs/base/common/event' ;
3738
3839interface ITestRunner {
3940 /** Old test runner API, as exported from `vscode/lib/testrunner` */
@@ -65,12 +66,15 @@ type TelemetryActivationEventFragment = {
6566 reasonId : { classification : 'PublicNonPersonalData' , purpose : 'FeatureInsight' } ;
6667} ;
6768
68- export abstract class AbstractExtHostExtensionService implements ExtHostExtensionServiceShape {
69+ export abstract class AbstractExtHostExtensionService extends Disposable implements ExtHostExtensionServiceShape {
6970
7071 readonly _serviceBrand : undefined ;
7172
7273 private static readonly WORKSPACE_CONTAINS_TIMEOUT = 7000 ;
7374
75+ private readonly _onDidChangeRemoteConnectionData = this . _register ( new Emitter < void > ( ) ) ;
76+ public readonly onDidChangeRemoteConnectionData = this . _onDidChangeRemoteConnectionData . event ;
77+
7478 protected readonly _hostUtils : IHostUtils ;
7579 protected readonly _initData : IInitData ;
7680 protected readonly _extHostContext : IExtHostRpcService ;
@@ -97,6 +101,7 @@ export abstract class AbstractExtHostExtensionService implements ExtHostExtensio
97101 private readonly _resolvers : { [ authorityPrefix : string ] : vscode . RemoteAuthorityResolver ; } ;
98102
99103 private _started : boolean ;
104+ private _remoteConnectionData : IRemoteConnectionData | null ;
100105
101106 private readonly _disposables : DisposableStore ;
102107
@@ -112,6 +117,7 @@ export abstract class AbstractExtHostExtensionService implements ExtHostExtensio
112117 @IExtHostTunnelService extHostTunnelService : IExtHostTunnelService ,
113118 @IExtHostTerminalService extHostTerminalService : IExtHostTerminalService
114119 ) {
120+ super ( ) ;
115121 this . _hostUtils = hostUtils ;
116122 this . _extHostContext = extHostContext ;
117123 this . _initData = initData ;
@@ -164,6 +170,11 @@ export abstract class AbstractExtHostExtensionService implements ExtHostExtensio
164170 this . _extensionPathIndex = null ;
165171 this . _resolvers = Object . create ( null ) ;
166172 this . _started = false ;
173+ this . _remoteConnectionData = this . _initData . remote . connectionData ;
174+ }
175+
176+ public getRemoteConnectionData ( ) : IRemoteConnectionData | null {
177+ return this . _remoteConnectionData ;
167178 }
168179
169180 public async initialize ( ) : Promise < void > {
@@ -793,6 +804,11 @@ export abstract class AbstractExtHostExtensionService implements ExtHostExtensio
793804 return buff ;
794805 }
795806
807+ public async $updateRemoteConnectionData ( connectionData : IRemoteConnectionData ) : Promise < void > {
808+ this . _remoteConnectionData = connectionData ;
809+ this . _onDidChangeRemoteConnectionData . fire ( ) ;
810+ }
811+
796812 public abstract async $setRemoteEnvironment ( env : { [ key : string ] : string | null } ) : Promise < void > ;
797813}
798814
@@ -836,4 +852,7 @@ export interface IExtHostExtensionService extends AbstractExtHostExtensionServic
836852 getExtensionRegistry ( ) : Promise < ExtensionDescriptionRegistry > ;
837853 getExtensionPathIndex ( ) : Promise < TernarySearchTree < string , IExtensionDescription > > ;
838854 registerRemoteAuthorityResolver ( authorityPrefix : string , resolver : vscode . RemoteAuthorityResolver ) : vscode . Disposable ;
855+
856+ onDidChangeRemoteConnectionData : Event < void > ;
857+ getRemoteConnectionData ( ) : IRemoteConnectionData | null ;
839858}
0 commit comments