Skip to content

Commit eab3914

Browse files
author
Benjamin Pasero
committed
web - more env refactoring and polish
1 parent c0ba9bd commit eab3914

9 files changed

Lines changed: 47 additions & 31 deletions

File tree

src/vs/workbench/electron-browser/desktop.main.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { onUnexpectedError } from 'vs/base/common/errors';
1515
import { isLinux, isMacintosh, isWindows } from 'vs/base/common/platform';
1616
import { URI } from 'vs/base/common/uri';
1717
import { WorkspaceService } from 'vs/workbench/services/configuration/browser/configurationService';
18-
import { WorkbenchEnvironmentService } from 'vs/workbench/services/environment/node/environmentService';
18+
import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService';
1919
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
2020
import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection';
2121
import { stat } from 'vs/base/node/pfs';
@@ -56,12 +56,12 @@ import { ElectronEnvironmentService, IElectronEnvironmentService } from 'vs/work
5656

5757
class DesktopMain extends Disposable {
5858

59-
private readonly environmentService: WorkbenchEnvironmentService;
59+
private readonly environmentService: NativeWorkbenchEnvironmentService;
6060

6161
constructor(private configuration: IWindowConfiguration) {
6262
super();
6363

64-
this.environmentService = new WorkbenchEnvironmentService(configuration, configuration.execPath, configuration.windowId);
64+
this.environmentService = new NativeWorkbenchEnvironmentService(configuration, configuration.execPath, configuration.windowId);
6565

6666
this.init();
6767
}

src/vs/workbench/services/backup/test/node/backupFileService.test.ts renamed to src/vs/workbench/services/backup/test/electron-browser/backupFileService.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ import { IWindowConfiguration } from 'vs/platform/windows/common/windows';
2020
import { FileService } from 'vs/platform/files/common/fileService';
2121
import { NullLogService } from 'vs/platform/log/common/log';
2222
import { DiskFileSystemProvider } from 'vs/platform/files/node/diskFileSystemProvider';
23-
import { WorkbenchEnvironmentService } from 'vs/workbench/services/environment/node/environmentService';
23+
import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService';
2424
import { parseArgs, OPTIONS } from 'vs/platform/environment/node/argv';
2525
import { snapshotToString } from 'vs/workbench/services/textfile/common/textfiles';
2626
import { IFileService } from 'vs/platform/files/common/files';
@@ -46,7 +46,7 @@ const fooBackupPath = path.join(workspaceBackupPath, 'file', hashPath(fooFile));
4646
const barBackupPath = path.join(workspaceBackupPath, 'file', hashPath(barFile));
4747
const untitledBackupPath = path.join(workspaceBackupPath, 'untitled', hashPath(untitledFile));
4848

49-
class TestBackupEnvironmentService extends WorkbenchEnvironmentService {
49+
class TestBackupEnvironmentService extends NativeWorkbenchEnvironmentService {
5050

5151
constructor(backupPath: string) {
5252
super({ ...parseArgs(process.argv, OPTIONS), ...{ backupPath, 'user-data-dir': userdataDir } } as IWindowConfiguration, process.execPath, 0);

src/vs/workbench/services/configuration/test/electron-browser/configurationEditingService.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ import { DiskFileSystemProvider } from 'vs/platform/files/node/diskFileSystemPro
3939
import { IFileService } from 'vs/platform/files/common/files';
4040
import { ConfigurationCache } from 'vs/workbench/services/configuration/node/configurationCache';
4141
import { KeybindingsEditingService, IKeybindingEditingService } from 'vs/workbench/services/keybinding/common/keybindingEditing';
42-
import { WorkbenchEnvironmentService } from 'vs/workbench/services/environment/node/environmentService';
42+
import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService';
4343
import { IWindowConfiguration } from 'vs/platform/windows/common/windows';
4444
import { FileUserDataProvider } from 'vs/workbench/services/userData/common/fileUserDataProvider';
4545

46-
class TestEnvironmentService extends WorkbenchEnvironmentService {
46+
class TestEnvironmentService extends NativeWorkbenchEnvironmentService {
4747

4848
constructor(private _appSettingsHome: URI) {
4949
super(parseArgs(process.argv, OPTIONS) as IWindowConfiguration, process.execPath, 0);

src/vs/workbench/services/configuration/test/electron-browser/configurationService.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,10 +45,10 @@ import { IConfigurationCache } from 'vs/workbench/services/configuration/common/
4545
import { SignService } from 'vs/platform/sign/browser/signService';
4646
import { FileUserDataProvider } from 'vs/workbench/services/userData/common/fileUserDataProvider';
4747
import { IKeybindingEditingService, KeybindingsEditingService } from 'vs/workbench/services/keybinding/common/keybindingEditing';
48-
import { WorkbenchEnvironmentService } from 'vs/workbench/services/environment/node/environmentService';
48+
import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService';
4949
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
5050

51-
class TestEnvironmentService extends WorkbenchEnvironmentService {
51+
class TestEnvironmentService extends NativeWorkbenchEnvironmentService {
5252

5353
constructor(private _appSettingsHome: URI) {
5454
super(parseArgs(process.argv, OPTIONS) as IWindowConfiguration, process.execPath, 0);

src/vs/workbench/services/configurationResolver/test/electron-browser/configurationResolverService.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import { CancellationToken } from 'vs/base/common/cancellation';
1919
import * as Types from 'vs/base/common/types';
2020
import { EditorType } from 'vs/editor/common/editorCommon';
2121
import { Selection } from 'vs/editor/common/core/selection';
22-
import { WorkbenchEnvironmentService } from 'vs/workbench/services/environment/node/environmentService';
22+
import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService';
2323
import { IWindowConfiguration } from 'vs/platform/windows/common/windows';
2424
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
2525

@@ -642,7 +642,7 @@ class MockInputsConfigurationService extends TestConfigurationService {
642642
}
643643
}
644644

645-
class MockWorkbenchEnvironmentService extends WorkbenchEnvironmentService {
645+
class MockWorkbenchEnvironmentService extends NativeWorkbenchEnvironmentService {
646646

647647
constructor(env: platform.IProcessEnvironment) {
648648
super({ userEnv: env } as IWindowConfiguration, process.execPath, 0);

src/vs/workbench/services/environment/node/environmentService.ts renamed to src/vs/workbench/services/environment/electron-browser/environmentService.ts

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -14,28 +14,24 @@ import { join } from 'vs/base/common/path';
1414
import { IDebugParams } from 'vs/platform/environment/common/environment';
1515
import product from 'vs/platform/product/common/product';
1616

17-
export class WorkbenchEnvironmentService extends EnvironmentService implements IWorkbenchEnvironmentService {
17+
export class NativeWorkbenchEnvironmentService extends EnvironmentService implements IWorkbenchEnvironmentService {
1818

1919
_serviceBrand: undefined;
2020

21+
@memoize
2122
get webviewExternalEndpoint(): string {
2223
const baseEndpoint = 'https://{{uuid}}.vscode-webview-test.com/{{commit}}';
24+
2325
return baseEndpoint.replace('{{commit}}', product.commit || 'c58aaab8a1cc22a7139b761166a0d4f37d41e998');
2426
}
2527

26-
readonly webviewResourceRoot = 'vscode-resource://{{resource}}';
27-
readonly webviewCspSource = 'vscode-resource:';
28-
29-
constructor(
30-
readonly configuration: IWindowConfiguration,
31-
execPath: string,
32-
private readonly windowId: number
33-
) {
34-
super(configuration, execPath);
28+
@memoize
29+
get webviewResourceRoot(): string { return 'vscode-resource://{{resource}}'; }
3530

36-
this.configuration.backupWorkspaceResource = this.configuration.backupPath ? toBackupWorkspaceResource(this.configuration.backupPath, this) : undefined;
37-
}
31+
@memoize
32+
get webviewCspSource(): string { return 'vscode-resource:'; }
3833

34+
@memoize
3935
get skipReleaseNotes(): boolean { return !!this.args['skip-release-notes']; }
4036

4137
@memoize
@@ -44,8 +40,19 @@ export class WorkbenchEnvironmentService extends EnvironmentService implements I
4440
@memoize
4541
get logFile(): URI { return URI.file(join(this.logsPath, `renderer${this.windowId}.log`)); }
4642

43+
@memoize
4744
get logExtensionHostCommunication(): boolean { return !!this.args.logExtensionHostCommunication; }
4845

4946
@memoize
5047
get debugSearch(): IDebugParams { return parseSearchPort(this.args, this.isBuilt); }
48+
49+
constructor(
50+
readonly configuration: IWindowConfiguration,
51+
execPath: string,
52+
private readonly windowId: number
53+
) {
54+
super(configuration, execPath);
55+
56+
this.configuration.backupWorkspaceResource = this.configuration.backupPath ? toBackupWorkspaceResource(this.configuration.backupPath, this) : undefined;
57+
}
5158
}

src/vs/workbench/services/keybinding/test/electron-browser/keybindingEditing.test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@ import { DiskFileSystemProvider } from 'vs/platform/files/node/diskFileSystemPro
4646
import { URI } from 'vs/base/common/uri';
4747
import { FileUserDataProvider } from 'vs/workbench/services/userData/common/fileUserDataProvider';
4848
import { parseArgs, OPTIONS } from 'vs/platform/environment/node/argv';
49-
import { WorkbenchEnvironmentService } from 'vs/workbench/services/environment/node/environmentService';
49+
import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService';
5050
import { IWindowConfiguration } from 'vs/platform/windows/common/windows';
5151
import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService';
5252

53-
class TestEnvironmentService extends WorkbenchEnvironmentService {
53+
class TestEnvironmentService extends NativeWorkbenchEnvironmentService {
5454

5555
constructor(private _appSettingsHome: URI) {
5656
super(parseArgs(process.argv, OPTIONS) as IWindowConfiguration, process.execPath, 0);

src/vs/workbench/services/userData/test/electron-browser/fileUserDataProvider.test.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,15 @@ import { BrowserWorkbenchEnvironmentService } from 'vs/workbench/services/enviro
2323
import { Emitter, Event } from 'vs/base/common/event';
2424
import { timeout } from 'vs/base/common/async';
2525

26+
class TestBrowserWorkbenchEnvironmentService extends BrowserWorkbenchEnvironmentService {
27+
28+
testUserRoamingDataHome!: URI;
29+
30+
get userRoamingDataHome(): URI {
31+
return this.testUserRoamingDataHome;
32+
}
33+
}
34+
2635
suite('FileUserDataProvider', () => {
2736

2837
let testObject: IFileService;
@@ -47,8 +56,8 @@ suite('FileUserDataProvider', () => {
4756
userDataResource = URI.file(userDataPath).with({ scheme: Schemas.userData });
4857
await Promise.all([pfs.mkdirp(userDataPath), pfs.mkdirp(backupsPath)]);
4958

50-
const environmentService = new BrowserWorkbenchEnvironmentService({ remoteAuthority: 'remote', workspaceId: 'workspaceId', logsPath: URI.file('logFile') });
51-
environmentService.userRoamingDataHome = userDataResource;
59+
const environmentService = new TestBrowserWorkbenchEnvironmentService({ remoteAuthority: 'remote', workspaceId: 'workspaceId', logsPath: URI.file('logFile') });
60+
environmentService.testUserRoamingDataHome = userDataResource;
5261

5362
const userDataFileSystemProvider = new FileUserDataProvider(URI.file(userDataPath), URI.file(backupsPath), diskFileSystemProvider, environmentService);
5463
disposables.add(userDataFileSystemProvider);
@@ -321,8 +330,8 @@ suite('FileUserDataProvider - Watching', () => {
321330
localUserDataResource = URI.file(userDataPath);
322331
userDataResource = localUserDataResource.with({ scheme: Schemas.userData });
323332

324-
const environmentService = new BrowserWorkbenchEnvironmentService({ remoteAuthority: 'remote', workspaceId: 'workspaceId', logsPath: URI.file('logFile') });
325-
environmentService.userRoamingDataHome = userDataResource;
333+
const environmentService = new TestBrowserWorkbenchEnvironmentService({ remoteAuthority: 'remote', workspaceId: 'workspaceId', logsPath: URI.file('logFile') });
334+
environmentService.testUserRoamingDataHome = userDataResource;
326335

327336
const userDataFileSystemProvider = new FileUserDataProvider(localUserDataResource, localBackupsResource, new TestFileSystemProvider(fileEventEmitter.event), environmentService);
328337
disposables.add(userDataFileSystemProvider);

src/vs/workbench/test/workbenchTestServices.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ import { IPanel } from 'vs/workbench/common/panel';
7979
import { IBadge } from 'vs/workbench/services/activity/common/activity';
8080
import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService';
8181
import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService';
82-
import { WorkbenchEnvironmentService } from 'vs/workbench/services/environment/node/environmentService';
82+
import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService';
8383
import { VSBuffer, VSBufferReadable } from 'vs/base/common/buffer';
8484
import { NativeTextFileService } from 'vs/workbench/services/textfile/electron-browser/nativeTextFileService';
8585
import { Schemas } from 'vs/base/common/network';
@@ -97,7 +97,7 @@ export function createFileInput(instantiationService: IInstantiationService, res
9797
return instantiationService.createInstance(FileEditorInput, resource, undefined, undefined);
9898
}
9999

100-
export const TestEnvironmentService = new WorkbenchEnvironmentService(parseArgs(process.argv, OPTIONS) as IWindowConfiguration, process.execPath, 0);
100+
export const TestEnvironmentService = new NativeWorkbenchEnvironmentService(parseArgs(process.argv, OPTIONS) as IWindowConfiguration, process.execPath, 0);
101101

102102
export class TestContextService implements IWorkspaceContextService {
103103
public _serviceBrand: undefined;

0 commit comments

Comments
 (0)