Skip to content

Commit efee188

Browse files
authored
web: add didResolveRemoteAuthority function for embedders (microsoft#209480)
1 parent feb823c commit efee188

File tree

3 files changed

+20
-0
lines changed

3 files changed

+20
-0
lines changed

src/vs/workbench/browser/web.api.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ export interface IWorkbench {
106106
};
107107

108108
workspace: {
109+
/**
110+
* Resolves once the remote authority has been resolved.
111+
*/
112+
didResolveRemoteAuthority(): Promise<void>;
109113

110114
/**
111115
* Forwards a port. If the current embedder implements a tunnelFactory then that will be used to make the tunnel.

src/vs/workbench/browser/web.factory.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,6 +154,14 @@ export namespace window {
154154

155155
export namespace workspace {
156156

157+
/**
158+
* {@linkcode IWorkbench.workspace IWorkbench.workspace.didResolveRemoteAuthority}
159+
*/
160+
export async function didResolveRemoteAuthority() {
161+
const workbench = await workbenchPromise.p;
162+
await workbench.workspace.didResolveRemoteAuthority();
163+
}
164+
157165
/**
158166
* {@linkcode IWorkbench.workspace IWorkbench.workspace.openTunnel}
159167
*/

src/vs/workbench/browser/web.main.ts

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,7 @@ export class BrowserMain extends Disposable {
156156
const remoteExplorerService = accessor.get(IRemoteExplorerService);
157157
const labelService = accessor.get(ILabelService);
158158
const embedderTerminalService = accessor.get(IEmbedderTerminalService);
159+
const remoteAuthorityResolverService = accessor.get(IRemoteAuthorityResolverService);
159160

160161
let logger: DelayedLogChannel | undefined = undefined;
161162

@@ -190,6 +191,13 @@ export class BrowserMain extends Disposable {
190191
createTerminal: async (options) => embedderTerminalService.createTerminal(options),
191192
},
192193
workspace: {
194+
didResolveRemoteAuthority: async () => {
195+
if (!this.configuration.remoteAuthority) {
196+
return;
197+
}
198+
199+
await remoteAuthorityResolverService.resolveAuthority(this.configuration.remoteAuthority);
200+
},
193201
openTunnel: async tunnelOptions => {
194202
const tunnel = assertIsDefined(await remoteExplorerService.forward({
195203
remote: tunnelOptions.remoteAddress,

0 commit comments

Comments
 (0)