@@ -81,6 +81,7 @@ import { ILabelService } from 'vs/platform/label/common/label';
81
81
import { UserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfileService' ;
82
82
import { IUserDataProfileService } from 'vs/workbench/services/userDataProfile/common/userDataProfile' ;
83
83
import { BrowserUserDataProfilesService } from 'vs/platform/userDataProfile/browser/userDataProfile' ;
84
+ import { timeout } from 'vs/base/common/async' ;
84
85
85
86
export class BrowserMain extends Disposable {
86
87
@@ -358,6 +359,20 @@ export class BrowserMain extends Disposable {
358
359
const userDataInitializationService = new UserDataInitializationService ( environmentService , credentialsService , userDataSyncStoreManagementService , fileService , userDataProfilesService , storageService , productService , requestService , logService , uriIdentityService ) ;
359
360
serviceCollection . set ( IUserDataInitializationService , userDataInitializationService ) ;
360
361
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 ) {
361
376
if ( await userDataInitializationService . requiresInitialization ( ) ) {
362
377
mark ( 'code/willInitRequiredUserData' ) ;
363
378
@@ -370,8 +385,6 @@ export class BrowserMain extends Disposable {
370
385
371
386
mark ( 'code/didInitRequiredUserData' ) ;
372
387
}
373
-
374
- return { serviceCollection, configurationService, logService } ;
375
388
}
376
389
377
390
private async registerFileSystemProviders ( environmentService : IWorkbenchEnvironmentService , fileService : IWorkbenchFileService , remoteAgentService : IRemoteAgentService , logService : BufferLogService , logsPath : URI ) : Promise < void > {
0 commit comments