This commit is contained in:
Sandeep Somavarapu
2020-07-27 11:51:08 +02:00
parent a9e9f70650
commit f5f7415e96

View File

@@ -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();
}