diff --git a/src/vs/workbench/services/accounts/browser/defaultAccount.ts b/src/vs/workbench/services/accounts/browser/defaultAccount.ts index b5cc20083b1791..8f4e86487dfb20 100644 --- a/src/vs/workbench/services/accounts/browser/defaultAccount.ts +++ b/src/vs/workbench/services/accounts/browser/defaultAccount.ts @@ -422,10 +422,6 @@ class DefaultAccountProvider extends Disposable implements IDefaultAccountProvid private async whenDefaultAccountAuthenticationProviderAvailable(): Promise { const provider = this.getDefaultAccountAuthenticationProvider(); - const isAvailable = () => { - return this.authenticationService.declaredProviders.some(p => p.id === provider.id) - || this.authenticationService.isAuthenticationProviderRegistered(provider.id); - }; this.logService.debug('[DefaultAccount] Waiting for default account authentication provider to be available.'); const disposables = new DisposableStore(); @@ -433,7 +429,7 @@ class DefaultAccountProvider extends Disposable implements IDefaultAccountProvid await new Promise(resolve => { // Check if the provider is available. // If available, resolve immediately. Otherwise, wait for it to be declared or registered. - if (isAvailable()) { + if (this.isAccountProviderAvailable(provider)) { this.logService.debug('[DefaultAccount] Default account authentication provider is now available.'); resolve(); return; @@ -442,7 +438,7 @@ class DefaultAccountProvider extends Disposable implements IDefaultAccountProvid // Resolve as soon as the default account authentication provider is declared or // registered, but wait no longer than installed extensions being registered. disposables.add(Event.any(this.authenticationService.onDidChangeDeclaredProviders, this.authenticationService.onDidRegisterAuthenticationProvider)(() => { - if (isAvailable()) { + if (this.isAccountProviderAvailable(provider)) { this.logService.debug('[DefaultAccount] Default account authentication provider is now available.'); resolve(); } @@ -513,15 +509,19 @@ class DefaultAccountProvider extends Disposable implements IDefaultAccountProvid const defaultAccountProvider = this.getDefaultAccountAuthenticationProvider(); this.logService.debug('[DefaultAccount] Default account provider ID:', defaultAccountProvider.id); - const declaredProvider = this.authenticationService.declaredProviders.find(provider => provider.id === defaultAccountProvider.id); - if (!declaredProvider) { - this.logService.info(`[DefaultAccount] Authentication provider is not declared.`, defaultAccountProvider); + if (!this.isAccountProviderAvailable(defaultAccountProvider)) { + this.logService.info(`[DefaultAccount] Authentication provider is not available.`, defaultAccountProvider); return null; } return await this.getDefaultAccountForAuthenticationProvider(defaultAccountProvider, options); } + private isAccountProviderAvailable(accountProvider: IDefaultAccountAuthenticationProvider): boolean { + return this.authenticationService.declaredProviders.some(p => p.id === accountProvider.id) + || this.authenticationService.isAuthenticationProviderRegistered(accountProvider.id); + } + private setDefaultAccount(account: IDefaultAccountData | null): void { if (equals(this._defaultAccount, account)) { return;