mirror of
https://github.com/microsoft/vscode.git
synced 2026-04-26 11:38:51 +01:00
fix #103238
This commit is contained in:
@@ -131,11 +131,18 @@ export class UserDataSyncWorkbenchService extends Disposable implements IUserDat
|
||||
}
|
||||
|
||||
private async waitAndInitialize(): Promise<void> {
|
||||
if (this._authenticationProviders.every(({ id }) => !this.authenticationService.isAuthenticationProviderRegistered(id))) {
|
||||
/* None of the providers are registered -> activate providers and wait until one of them is availabe */
|
||||
await Promise.all(this._authenticationProviders.map(({ id }) => this.extensionService.activateByEvent(getAuthenticationProviderActivationEvent(id))));
|
||||
await Event.toPromise(Event.filter(this.authenticationService.onDidRegisterAuthenticationProvider, ({ id }) => this.isSupportedAuthenticationProviderId(id)));
|
||||
await this.extensionService.whenInstalledExtensionsRegistered();
|
||||
|
||||
/* activate unregistered providers */
|
||||
const unregisteredProviders = this._authenticationProviders.filter(({ id }) => !this.authenticationService.isAuthenticationProviderRegistered(id));
|
||||
if (unregisteredProviders.length) {
|
||||
await Promise.all(unregisteredProviders.map(({ id }) => this.extensionService.activateByEvent(getAuthenticationProviderActivationEvent(id))));
|
||||
}
|
||||
|
||||
/* wait until one of the providers is availabe */
|
||||
await Event.toPromise(Event.filter(this.authenticationService.onDidRegisterAuthenticationProvider, ({ id }) => this.isSupportedAuthenticationProviderId(id)));
|
||||
|
||||
/* initialize */
|
||||
await this.initialize();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user