Skip to content

Commit 9bb394b

Browse files
No longer dispose extension auth providers and track dynamic ones (microsoft#249845)
Just some disposable clean up.
1 parent 2d1d79d commit 9bb394b

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,9 +98,8 @@ export class MainThreadAuthentication extends Disposable implements MainThreadAu
9898
super();
9999
this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostAuthentication);
100100

101-
this._register(this.authenticationService.onDidChangeSessions(e => {
102-
this._proxy.$onDidChangeAuthenticationSessions(e.providerId, e.label);
103-
}));
101+
this._register(this.authenticationService.onDidChangeSessions(e => this._proxy.$onDidChangeAuthenticationSessions(e.providerId, e.label)));
102+
this._register(this.authenticationService.onDidUnregisterAuthenticationProvider(e => this._proxy.$onDidUnregisterAuthenticationProvider(e.id)));
104103
this._register(this.authenticationExtensionsService.onDidChangeAccountPreference(e => {
105104
const providerInfo = this.authenticationService.getProvider(e.providerId);
106105
this._proxy.$onDidChangeAuthenticationSessions(providerInfo.id, providerInfo.label, e.extensionIds);

src/vs/workbench/api/common/extHost.protocol.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1987,6 +1987,7 @@ export interface ExtHostAuthenticationShape {
19871987
$createSession(id: string, scopes: string[], options: IAuthenticationCreateSessionOptions): Promise<AuthenticationSession>;
19881988
$removeSession(id: string, sessionId: string): Promise<void>;
19891989
$onDidChangeAuthenticationSessions(id: string, label: string, extensionIdFilter?: string[]): Promise<void>;
1990+
$onDidUnregisterAuthenticationProvider(id: string): Promise<void>;
19901991
$registerDynamicAuthProvider(serverMetadata: IAuthorizationServerMetadata, clientId?: string, initialTokens?: (IAuthorizationTokenResponse & { created_at: number })[]): Promise<void>;
19911992
$onDidChangeDynamicAuthProviderTokens(authProviderId: string, clientId: string, tokens?: (IAuthorizationTokenResponse & { created_at: number })[]): Promise<void>;
19921993
}

src/vs/workbench/api/common/extHostAuthentication.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ import { IExtHostInitDataService } from './extHostInitDataService.js';
1818
import { ILogger, ILoggerService } from '../../../platform/log/common/log.js';
1919
import { autorun, derivedOpts, IObservable, ISettableObservable, observableValue } from '../../../base/common/observable.js';
2020
import { stringHash } from '../../../base/common/hash.js';
21-
import { DisposableStore, IDisposable, isDisposable } from '../../../base/common/lifecycle.js';
21+
import { DisposableStore, IDisposable } from '../../../base/common/lifecycle.js';
2222
import { IExtHostUrlsService } from './extHostUrls.js';
2323
import { encodeBase64, VSBuffer } from '../../../base/common/buffer.js';
2424
import { equals as arraysEqual } from '../../../base/common/arrays.js';
@@ -112,9 +112,6 @@ export class ExtHostAuthentication implements ExtHostAuthenticationShape {
112112
listener.dispose();
113113
this._authenticationProviders.delete(id);
114114
this._proxy.$unregisterAuthenticationProvider(id);
115-
if (isDisposable(provider)) {
116-
provider.dispose();
117-
}
118115
});
119116
}
120117

@@ -155,6 +152,15 @@ export class ExtHostAuthentication implements ExtHostAuthenticationShape {
155152
return Promise.resolve();
156153
}
157154

155+
$onDidUnregisterAuthenticationProvider(id: string): Promise<void> {
156+
const providerData = this._authenticationProviders.get(id);
157+
if (providerData?.disposable) {
158+
providerData.disposable.dispose();
159+
}
160+
this._authenticationProviders.delete(id);
161+
return Promise.resolve();
162+
}
163+
158164
async $registerDynamicAuthProvider(serverMetadata: IAuthorizationServerMetadata, clientId?: string, initialTokens?: IAuthorizationToken[]): Promise<void> {
159165
const issuerUri = URI.parse(serverMetadata.issuer);
160166
const provider = await DynamicAuthProvider.create(

0 commit comments

Comments
 (0)