@@ -35,12 +35,11 @@ import { SignService } from 'vs/platform/sign/browser/signService';
3535import { hash } from 'vs/base/common/hash' ;
3636import { IWorkbenchConstructionOptions } from 'vs/workbench/workbench.web.api' ;
3737import { ProductService } from 'vs/platform/product/browser/productService' ;
38- import { FileUserDataService } from 'vs/workbench/services/userData/common/fileUserDataService' ;
39- import { IUserDataService } from 'vs/workbench/services/userData/common/userData' ;
38+ import { FileUserDataProvider } from 'vs/workbench/services/userData/common/fileUserDataProvider' ;
4039import { UserDataFileSystemProvider } from 'vs/workbench//services/userData/common/userDataFileSystemProvider' ;
41- import { CustomUserDataService } from '../services/userData/ common/customUserDataService ' ;
42- import { joinPath } from 'vs/base/ common/resources ' ;
43- import { InMemoryUserDataProvider } from '../ services/userData/common/inMemoryUserDataProvider ' ;
40+ import { joinPath , dirname } from 'vs/base/ common/resources ' ;
41+ import { InMemoryUserDataProvider } from 'vs/workbench/services/userData/ common/inMemoryUserDataProvider ' ;
42+ import { IUserDataProvider } from 'vs/workbench/ services/userData/common/userData ' ;
4443
4544class CodeRendererMain extends Disposable {
4645
@@ -92,7 +91,8 @@ class CodeRendererMain extends Disposable {
9291 serviceCollection . set ( ILogService , logService ) ;
9392
9493 // Environment
95- const environmentService = new BrowserWorkbenchEnvironmentService ( this . configuration ) ;
94+ const remoteUserDataUri = this . getRemoteUserDataUri ( ) ;
95+ const environmentService = new BrowserWorkbenchEnvironmentService ( this . configuration , remoteUserDataUri ) ;
9696 serviceCollection . set ( IWorkbenchEnvironmentService , environmentService ) ;
9797
9898 // Product
@@ -123,15 +123,13 @@ class CodeRendererMain extends Disposable {
123123 fileService . registerProvider ( Schemas . vscodeRemote , remoteFileSystemProvider ) ;
124124 }
125125
126- // User Data Service
127- const userDataService = this . createUserDataService ( fileService ) ;
128- serviceCollection . set ( IUserDataService , userDataService ) ;
129- fileService . registerProvider ( Schemas . userData , new UserDataFileSystemProvider ( userDataService ) ) ;
126+ // User Data Provider
127+ fileService . registerProvider ( Schemas . userData , new UserDataFileSystemProvider ( dirname ( environmentService . settingsResource ) , this . getUserDataPovider ( fileService , remoteUserDataUri ) ) ) ;
130128
131129 const payload = await this . resolveWorkspaceInitializationPayload ( ) ;
132130
133131 await Promise . all ( [
134- this . createWorkspaceService ( payload , environmentService , fileService , userDataService , remoteAgentService , logService ) . then ( service => {
132+ this . createWorkspaceService ( payload , environmentService , fileService , remoteAgentService , logService ) . then ( service => {
135133
136134 // Workspace
137135 serviceCollection . set ( IWorkspaceContextService , service ) ;
@@ -146,8 +144,8 @@ class CodeRendererMain extends Disposable {
146144 return { serviceCollection, logService } ;
147145 }
148146
149- private async createWorkspaceService ( payload : IWorkspaceInitializationPayload , environmentService : IWorkbenchEnvironmentService , fileService : FileService , userDataService : IUserDataService , remoteAgentService : IRemoteAgentService , logService : ILogService ) : Promise < WorkspaceService > {
150- const workspaceService = new WorkspaceService ( { remoteAuthority : this . configuration . remoteAuthority , configurationCache : new ConfigurationCache ( ) } , fileService , userDataService , remoteAgentService ) ;
147+ private async createWorkspaceService ( payload : IWorkspaceInitializationPayload , environmentService : IWorkbenchEnvironmentService , fileService : FileService , remoteAgentService : IRemoteAgentService , logService : ILogService ) : Promise < WorkspaceService > {
148+ const workspaceService = new WorkspaceService ( { remoteAuthority : this . configuration . remoteAuthority , configurationCache : new ConfigurationCache ( ) } , environmentService , fileService , remoteAgentService ) ;
151149
152150 try {
153151 await workspaceService . initialize ( payload ) ;
@@ -176,16 +174,13 @@ class CodeRendererMain extends Disposable {
176174 return { id : 'empty-window' } ;
177175 }
178176
179- private createUserDataService ( fileService : IFileService ) : IUserDataService {
177+ private getUserDataPovider ( fileService : IFileService , remoteUserDataUri : URI | null ) : IUserDataProvider {
180178 if ( this . configuration . userDataProvider ) {
181- return this . _register ( new CustomUserDataService ( this . configuration . userDataProvider ) ) ;
182- } else if ( this . configuration . remoteAuthority ) {
183- const remoteUserDataUri = this . getRemoteUserDataUri ( ) ;
184- if ( remoteUserDataUri ) {
185- return this . _register ( new FileUserDataService ( remoteUserDataUri , fileService ) ) ;
186- }
179+ return this . configuration . userDataProvider ;
180+ } else if ( this . configuration . remoteAuthority && remoteUserDataUri ) {
181+ return this . _register ( new FileUserDataProvider ( remoteUserDataUri , fileService ) ) ;
187182 }
188- return this . _register ( new CustomUserDataService ( new InMemoryUserDataProvider ( ) ) ) ;
183+ return this . _register ( new InMemoryUserDataProvider ( ) ) ;
189184 }
190185
191186 private getRemoteUserDataUri ( ) : URI | null {
0 commit comments