diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index cad2bc0638f..375339be219 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -258,17 +258,17 @@ class SharedProcessMain extends Disposable { services.set(IRequestService, new SharedProcessRequestService(mainProcessService, configurationService, logService)); // Checksum - services.set(IChecksumService, new SyncDescriptor(ChecksumService)); + services.set(IChecksumService, new SyncDescriptor(ChecksumService, undefined, false /* proxied to other processes */)); // V8 Inspect profiler - services.set(IV8InspectProfilingService, new SyncDescriptor(V8InspectProfilingService)); + services.set(IV8InspectProfilingService, new SyncDescriptor(V8InspectProfilingService, undefined, false /* proxied to other processes */)); // Native Host const nativeHostService = ProxyChannel.toService(mainProcessService.getChannel('nativeHost'), { context: this.configuration.windowId }); services.set(INativeHostService, nativeHostService); // Download - services.set(IDownloadService, new SyncDescriptor(DownloadService)); + services.set(IDownloadService, new SyncDescriptor(DownloadService, undefined, true)); // Extension recommendations const activeWindowManager = this._register(new ActiveWindowManager(nativeHostService)); @@ -317,27 +317,27 @@ class SharedProcessMain extends Disposable { services.set(IExtensionGalleryService, new SyncDescriptor(ExtensionGalleryService, undefined, true)); // Extension Tips - services.set(IExtensionTipsService, new SyncDescriptor(ExtensionTipsService /* Eagerly scans and computes exe based recommendations */)); + services.set(IExtensionTipsService, new SyncDescriptor(ExtensionTipsService, undefined, false /* Eagerly scans and computes exe based recommendations */)); // Localizations - services.set(ILanguagePackService, new SyncDescriptor(NativeLanguagePackService)); + services.set(ILanguagePackService, new SyncDescriptor(NativeLanguagePackService, undefined, false /* proxied to other processes */)); // Diagnostics - services.set(IDiagnosticsService, new SyncDescriptor(DiagnosticsService)); + services.set(IDiagnosticsService, new SyncDescriptor(DiagnosticsService, undefined, false /* proxied to other processes */)); // Settings Sync services.set(IUserDataSyncAccountService, new SyncDescriptor(UserDataSyncAccountService, undefined, true)); services.set(IUserDataSyncLogService, new SyncDescriptor(UserDataSyncLogService, undefined, true)); services.set(IUserDataSyncUtilService, new UserDataSyncUtilServiceClient(this.server.getChannel('userDataSyncUtil', client => client.ctx !== 'main'))); - services.set(IGlobalExtensionEnablementService, new SyncDescriptor(GlobalExtensionEnablementService /* Eagerly resets installed extensions */)); + services.set(IGlobalExtensionEnablementService, new SyncDescriptor(GlobalExtensionEnablementService, undefined, false /* Eagerly resets installed extensions */)); services.set(IIgnoredExtensionsManagementService, new SyncDescriptor(IgnoredExtensionsManagementService, undefined, true)); services.set(IExtensionStorageService, new SyncDescriptor(ExtensionStorageService)); services.set(IUserDataSyncStoreManagementService, new SyncDescriptor(UserDataSyncStoreManagementService, undefined, true)); services.set(IUserDataSyncStoreService, new SyncDescriptor(UserDataSyncStoreService, undefined, true)); services.set(IUserDataSyncMachinesService, new SyncDescriptor(UserDataSyncMachinesService, undefined, true)); - services.set(IUserDataSyncBackupStoreService, new SyncDescriptor(UserDataSyncBackupStoreService /* Eagerly cleans up old backups */)); + services.set(IUserDataSyncBackupStoreService, new SyncDescriptor(UserDataSyncBackupStoreService, undefined, false /* Eagerly cleans up old backups */)); services.set(IUserDataSyncEnablementService, new SyncDescriptor(UserDataSyncEnablementService, undefined, true)); - services.set(IUserDataSyncService, new SyncDescriptor(UserDataSyncService /* Initializes the Sync State */)); + services.set(IUserDataSyncService, new SyncDescriptor(UserDataSyncService, undefined, false /* Initializes the Sync State */)); const ptyHostService = new PtyHostService({ graceTime: LocalReconnectConstants.GraceTime, @@ -354,7 +354,7 @@ class SharedProcessMain extends Disposable { services.set(ILocalPtyService, this._register(ptyHostService)); // Signing - services.set(ISignService, new SyncDescriptor(SignService)); + services.set(ISignService, new SyncDescriptor(SignService, undefined, false /* proxied to other processes */)); // Tunnel services.set(ISharedTunnelsService, new SyncDescriptor(SharedTunnelsService)); diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index dc095e75bb5..6e807f2bb97 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -634,16 +634,16 @@ export class CodeApplication extends Disposable { } // Windows - services.set(IWindowsMainService, new SyncDescriptor(WindowsMainService, [machineId, this.userEnv])); + services.set(IWindowsMainService, new SyncDescriptor(WindowsMainService, [machineId, this.userEnv], false)); // Dialogs - services.set(IDialogMainService, new SyncDescriptor(DialogMainService)); + services.set(IDialogMainService, new SyncDescriptor(DialogMainService, undefined, true)); // Launch - services.set(ILaunchMainService, new SyncDescriptor(LaunchMainService)); + services.set(ILaunchMainService, new SyncDescriptor(LaunchMainService, undefined, false /* proxied to other processes */)); // Diagnostics - services.set(IDiagnosticsMainService, new SyncDescriptor(DiagnosticsMainService)); + services.set(IDiagnosticsMainService, new SyncDescriptor(DiagnosticsMainService, undefined, false /* proxied to other processes */)); services.set(IDiagnosticsService, ProxyChannel.toService(getDelayedChannel(sharedProcessReady.then(client => client.getChannel('diagnostics'))))); // Issues @@ -656,7 +656,7 @@ export class CodeApplication extends Disposable { services.set(IKeyboardLayoutMainService, new SyncDescriptor(KeyboardLayoutMainService)); // Native Host - services.set(INativeHostMainService, new SyncDescriptor(NativeHostMainService, [sharedProcess])); + services.set(INativeHostMainService, new SyncDescriptor(NativeHostMainService, [sharedProcess], false /* proxied to other processes */)); // Credentials services.set(ICredentialsMainService, new SyncDescriptor(CredentialsNativeMainService)); @@ -665,9 +665,9 @@ export class CodeApplication extends Disposable { services.set(IWebviewManagerService, new SyncDescriptor(WebviewMainService)); // Workspaces - services.set(IWorkspacesService, new SyncDescriptor(WorkspacesMainService)); - services.set(IWorkspacesManagementMainService, new SyncDescriptor(WorkspacesManagementMainService)); - services.set(IWorkspacesHistoryMainService, new SyncDescriptor(WorkspacesHistoryMainService)); + services.set(IWorkspacesService, new SyncDescriptor(WorkspacesMainService, undefined, false /* proxied to other processes */)); + services.set(IWorkspacesManagementMainService, new SyncDescriptor(WorkspacesManagementMainService, undefined, true)); + services.set(IWorkspacesHistoryMainService, new SyncDescriptor(WorkspacesHistoryMainService, undefined, false)); // Menubar services.set(IMenubarMainService, new SyncDescriptor(MenubarMainService)); @@ -696,7 +696,7 @@ export class CodeApplication extends Disposable { services.set(IBackupMainService, backupMainService); // URL handling - services.set(IURLService, new SyncDescriptor(NativeURLService)); + services.set(IURLService, new SyncDescriptor(NativeURLService, undefined, false /* proxied to other processes */)); // Telemetry if (supportsTelemetry(this.productService, this.environmentMainService)) { @@ -707,7 +707,7 @@ export class CodeApplication extends Disposable { const piiPaths = getPiiPathsFromEnvironment(this.environmentMainService); const config: ITelemetryServiceConfig = { appenders: [appender], commonProperties, piiPaths, sendErrorTelemetry: true }; - services.set(ITelemetryService, new SyncDescriptor(TelemetryService, [config])); + services.set(ITelemetryService, new SyncDescriptor(TelemetryService, [config], false)); } else { services.set(ITelemetryService, NullTelemetryService); } diff --git a/src/vs/code/electron-main/main.ts b/src/vs/code/electron-main/main.ts index 621d43109bf..d2e59149d7d 100644 --- a/src/vs/code/electron-main/main.ts +++ b/src/vs/code/electron-main/main.ts @@ -198,7 +198,7 @@ class CodeMain { services.set(IConfigurationService, configurationService); // Lifecycle - services.set(ILifecycleMainService, new SyncDescriptor(LifecycleMainService)); + services.set(ILifecycleMainService, new SyncDescriptor(LifecycleMainService, undefined, false)); // Request services.set(IRequestService, new SyncDescriptor(RequestMainService, undefined, true)); @@ -207,13 +207,13 @@ class CodeMain { services.set(IThemeMainService, new SyncDescriptor(ThemeMainService)); // Signing - services.set(ISignService, new SyncDescriptor(SignService)); + services.set(ISignService, new SyncDescriptor(SignService, undefined, false /* proxied to other processes */)); // Tunnel services.set(ITunnelService, new SyncDescriptor(TunnelService)); - // Protocol - services.set(IProtocolMainService, new SyncDescriptor(ProtocolMainService)); + // Protocol (instantiated early and not using sync descriptor for security reasons) + services.set(IProtocolMainService, new ProtocolMainService(environmentMainService, userDataProfilesMainService, logService)); return [new InstantiationService(services, true), instanceEnvironment, environmentMainService, configurationService, stateMainService, bufferLogService, productService, userDataProfilesMainService]; } diff --git a/src/vs/code/node/cliProcessMain.ts b/src/vs/code/node/cliProcessMain.ts index cd09afffb08..c1233e21e3a 100644 --- a/src/vs/code/node/cliProcessMain.ts +++ b/src/vs/code/node/cliProcessMain.ts @@ -183,7 +183,7 @@ class CliMain extends Disposable { services.set(IExtensionManagementCLIService, new SyncDescriptor(ExtensionManagementCLIService, undefined, true)); // Localizations - services.set(ILanguagePackService, new SyncDescriptor(NativeLanguagePackService)); + services.set(ILanguagePackService, new SyncDescriptor(NativeLanguagePackService, undefined, false)); // Telemetry const appenders: OneDataSystemAppender[] = []; @@ -214,7 +214,7 @@ class CliMain extends Disposable { piiPaths: getPiiPathsFromEnvironment(environmentService) }; - services.set(ITelemetryService, new SyncDescriptor(TelemetryService, [config])); + services.set(ITelemetryService, new SyncDescriptor(TelemetryService, [config], false)); } else { services.set(ITelemetryService, NullTelemetryService);