@@ -81,6 +81,7 @@ import { ILabelService } from 'vs/platform/label/common/label';
8181import { UserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfileService' ;
8282import { IUserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfile' ;
8383import { BrowserUserDataProfilesService } from 'vs/platform/userDataProfile/browser/userDataProfile' ;
84+ import { timeout } from 'vs/base/common/async' ;
8485
8586export class BrowserMain extends Disposable {
8687
@@ -358,6 +359,20 @@ export class BrowserMain extends Disposable {
358359 const userDataInitializationService = new UserDataInitializationService ( environmentService , credentialsService , userDataSyncStoreManagementService , fileService , userDataProfilesService , storageService , productService , requestService , logService , uriIdentityService ) ;
359360 serviceCollection . set ( IUserDataInitializationService , userDataInitializationService ) ;
360361
362+ try {
363+ await Promise . race ( [
364+ // Do not block more than 5s
365+ timeout ( 5000 ) ,
366+ this . initializeUserData ( userDataInitializationService , configurationService ) ]
367+ ) ;
368+ } catch ( error ) {
369+ logService . error ( error ) ;
370+ }
371+
372+ return { serviceCollection, configurationService, logService } ;
373+ }
374+
375+ private async initializeUserData ( userDataInitializationService : UserDataInitializationService , configurationService : WorkspaceService ) {
361376 if ( await userDataInitializationService . requiresInitialization ( ) ) {
362377 mark ( 'code/willInitRequiredUserData' ) ;
363378
@@ -370,8 +385,6 @@ export class BrowserMain extends Disposable {
370385
371386 mark ( 'code/didInitRequiredUserData' ) ;
372387 }
373-
374- return { serviceCollection, configurationService, logService } ;
375388 }
376389
377390 private async registerFileSystemProviders ( environmentService : IWorkbenchEnvironmentService , fileService : IWorkbenchFileService , remoteAgentService : IRemoteAgentService , logService : BufferLogService , logsPath : URI ) : Promise < void > {
0 commit comments