提交 e85114b2 编写于 作者: B Benjamin Pasero

sandbox - add pedantic comments to prevent electron-browser usage

上级 cf211eeb
...@@ -164,10 +164,19 @@ class DesktopMain extends Disposable { ...@@ -164,10 +164,19 @@ class DesktopMain extends Disposable {
private async initServices(): Promise<{ serviceCollection: ServiceCollection, logService: ILogService, storageService: NativeStorageService }> { private async initServices(): Promise<{ serviceCollection: ServiceCollection, logService: ILogService, storageService: NativeStorageService }> {
const serviceCollection = new ServiceCollection(); const serviceCollection = new ServiceCollection();
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// NOTE: DO NOT ADD ANY OTHER SERVICE INTO THE COLLECTION HERE. // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// CONTRIBUTE IT VIA WORKBENCH.DESKTOP.MAIN.TS AND registerSingleton(). //
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// DO NOT add services to `workbench.desktop.main.ts`, always add
// to `workbench.sandbox.main.ts` to support our Electron sandbox
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Main Process // Main Process
const mainProcessService = this._register(new MainProcessService(this.configuration.windowId)); const mainProcessService = this._register(new MainProcessService(this.configuration.windowId));
...@@ -188,6 +197,20 @@ class DesktopMain extends Disposable { ...@@ -188,6 +197,20 @@ class DesktopMain extends Disposable {
const remoteAuthorityResolverService = new RemoteAuthorityResolverService(); const remoteAuthorityResolverService = new RemoteAuthorityResolverService();
serviceCollection.set(IRemoteAuthorityResolverService, remoteAuthorityResolverService); serviceCollection.set(IRemoteAuthorityResolverService, remoteAuthorityResolverService);
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// DO NOT add services to `workbench.desktop.main.ts`, always add
// to `workbench.sandbox.main.ts` to support our Electron sandbox
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Sign // Sign
const signService = new SignService(); const signService = new SignService();
serviceCollection.set(ISignService, signService); serviceCollection.set(ISignService, signService);
...@@ -210,6 +233,20 @@ class DesktopMain extends Disposable { ...@@ -210,6 +233,20 @@ class DesktopMain extends Disposable {
// User Data Provider // User Data Provider
fileService.registerProvider(Schemas.userData, new FileUserDataProvider(this.environmentService.appSettingsHome, this.environmentService.configuration.backupPath ? URI.file(this.environmentService.configuration.backupPath) : undefined, diskFileSystemProvider, this.environmentService, logService)); fileService.registerProvider(Schemas.userData, new FileUserDataProvider(this.environmentService.appSettingsHome, this.environmentService.configuration.backupPath ? URI.file(this.environmentService.configuration.backupPath) : undefined, diskFileSystemProvider, this.environmentService, logService));
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// DO NOT add services to `workbench.desktop.main.ts`, always add
// to `workbench.sandbox.main.ts` to support our Electron sandbox
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
const connection = remoteAgentService.getConnection(); const connection = remoteAgentService.getConnection();
if (connection) { if (connection) {
const remoteFileSystemProvider = this._register(new RemoteFileSystemProvider(remoteAgentService)); const remoteFileSystemProvider = this._register(new RemoteFileSystemProvider(remoteAgentService));
...@@ -242,6 +279,20 @@ class DesktopMain extends Disposable { ...@@ -242,6 +279,20 @@ class DesktopMain extends Disposable {
}) })
]); ]);
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// DO NOT add services to `workbench.desktop.main.ts`, always add
// to `workbench.sandbox.main.ts` to support our Electron sandbox
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
return { serviceCollection, logService, storageService: services[1] }; return { serviceCollection, logService, storageService: services[1] };
} }
......
...@@ -140,10 +140,18 @@ class DesktopMain extends Disposable { ...@@ -140,10 +140,18 @@ class DesktopMain extends Disposable {
private async initServices(): Promise<{ serviceCollection: ServiceCollection, logService: ILogService, storageService: SimpleStorageService }> { private async initServices(): Promise<{ serviceCollection: ServiceCollection, logService: ILogService, storageService: SimpleStorageService }> {
const serviceCollection = new ServiceCollection(); const serviceCollection = new ServiceCollection();
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// NOTE: DO NOT ADD ANY OTHER SERVICE INTO THE COLLECTION HERE. //
// CONTRIBUTE IT VIA WORKBENCH.DESKTOP.MAIN.TS AND registerSingleton(). // NOTE: Please do NOT register services here. Use `registerSingleton()`
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// DO NOT add services to `workbench.desktop.main.ts`, always add
// to `workbench.sandbox.main.ts` to support our Electron sandbox
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Main Process // Main Process
const mainProcessService = this._register(new MainProcessService(this.configuration.windowId)); const mainProcessService = this._register(new MainProcessService(this.configuration.windowId));
...@@ -173,6 +181,20 @@ class DesktopMain extends Disposable { ...@@ -173,6 +181,20 @@ class DesktopMain extends Disposable {
const remoteAgentService = new SimpleRemoteAgentService(); const remoteAgentService = new SimpleRemoteAgentService();
serviceCollection.set(IRemoteAgentService, remoteAgentService); serviceCollection.set(IRemoteAgentService, remoteAgentService);
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// DO NOT add services to `workbench.desktop.main.ts`, always add
// to `workbench.sandbox.main.ts` to support our Electron sandbox
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Native Host // Native Host
const nativeHostService = new NativeHostService(this.configuration.windowId, mainProcessService) as INativeHostService; const nativeHostService = new NativeHostService(this.configuration.windowId, mainProcessService) as INativeHostService;
serviceCollection.set(INativeHostService, nativeHostService); serviceCollection.set(INativeHostService, nativeHostService);
...@@ -195,6 +217,20 @@ class DesktopMain extends Disposable { ...@@ -195,6 +217,20 @@ class DesktopMain extends Disposable {
const resourceIdentityService = new SimpleResourceIdentityService(); const resourceIdentityService = new SimpleResourceIdentityService();
serviceCollection.set(IResourceIdentityService, resourceIdentityService); serviceCollection.set(IResourceIdentityService, resourceIdentityService);
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// DO NOT add services to `workbench.desktop.main.ts`, always add
// to `workbench.sandbox.main.ts` to support our Electron sandbox
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
const services = await Promise.all([ const services = await Promise.all([
this.createWorkspaceService().then(service => { this.createWorkspaceService().then(service => {
...@@ -216,6 +252,20 @@ class DesktopMain extends Disposable { ...@@ -216,6 +252,20 @@ class DesktopMain extends Disposable {
}) })
]); ]);
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// DO NOT add services to `workbench.desktop.main.ts`, always add
// to `workbench.sandbox.main.ts` to support our Electron sandbox
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
return { serviceCollection, logService, storageService: services[1] }; return { serviceCollection, logService, storageService: services[1] };
} }
......
...@@ -4,11 +4,16 @@ ...@@ -4,11 +4,16 @@
*--------------------------------------------------------------------------------------------*/ *--------------------------------------------------------------------------------------------*/
// ####################################################################### // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// ### ### //
// ### !!! PLEASE ADD COMMON IMPORTS INTO WORKBENCH.COMMON.MAIN.TS !!! ### // NOTE: Please do NOT register services here. Use `registerSingleton()`
// ### ### // from `workbench.common.main.ts` if the service is shared between
// ####################################################################### // desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// The `node` & `electron-browser` layer is deprecated for workbench!
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//#region --- workbench common & sandbox //#region --- workbench common & sandbox
...@@ -25,6 +30,18 @@ import 'vs/workbench/electron-browser/actions/developerActions'; ...@@ -25,6 +30,18 @@ import 'vs/workbench/electron-browser/actions/developerActions';
//#endregion //#endregion
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// The `node` & `electron-browser` layer is deprecated for workbench!
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//#region --- workbench (desktop main) //#region --- workbench (desktop main)
import 'vs/workbench/electron-browser/desktop.main'; import 'vs/workbench/electron-browser/desktop.main';
...@@ -34,6 +51,19 @@ import 'vs/workbench/electron-browser/desktop.main'; ...@@ -34,6 +51,19 @@ import 'vs/workbench/electron-browser/desktop.main';
//#region --- workbench services //#region --- workbench services
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// The `node` & `electron-browser` layer is deprecated for workbench!
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
import 'vs/workbench/services/integrity/node/integrityService'; import 'vs/workbench/services/integrity/node/integrityService';
import 'vs/workbench/services/search/electron-browser/searchService'; import 'vs/workbench/services/search/electron-browser/searchService';
import 'vs/workbench/services/output/electron-browser/outputChannelModelService'; import 'vs/workbench/services/output/electron-browser/outputChannelModelService';
...@@ -55,6 +85,19 @@ import 'vs/workbench/services/localizations/electron-browser/localizationsServic ...@@ -55,6 +85,19 @@ import 'vs/workbench/services/localizations/electron-browser/localizationsServic
import 'vs/workbench/services/diagnostics/electron-browser/diagnosticsService'; import 'vs/workbench/services/diagnostics/electron-browser/diagnosticsService';
import 'vs/workbench/services/experiment/electron-browser/experimentService'; import 'vs/workbench/services/experiment/electron-browser/experimentService';
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// The `node` & `electron-browser` layer is deprecated for workbench!
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions';
import { ICredentialsService } from 'vs/platform/credentials/common/credentials'; import { ICredentialsService } from 'vs/platform/credentials/common/credentials';
import { KeytarCredentialsService } from 'vs/platform/credentials/node/credentialsService'; import { KeytarCredentialsService } from 'vs/platform/credentials/node/credentialsService';
...@@ -67,6 +110,18 @@ registerSingleton(ITunnelService, TunnelService); ...@@ -67,6 +110,18 @@ registerSingleton(ITunnelService, TunnelService);
//#endregion //#endregion
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// The `node` & `electron-browser` layer is deprecated for workbench!
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//#region --- workbench contributions //#region --- workbench contributions
// Tags // Tags
...@@ -82,6 +137,19 @@ import 'vs/workbench/contrib/debug/node/debugHelperService'; ...@@ -82,6 +137,19 @@ import 'vs/workbench/contrib/debug/node/debugHelperService';
// Webview // Webview
import 'vs/workbench/contrib/webview/electron-browser/webview.contribution'; import 'vs/workbench/contrib/webview/electron-browser/webview.contribution';
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// The `node` & `electron-browser` layer is deprecated for workbench!
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Notebook // Notebook
import 'vs/workbench/contrib/notebook/electron-browser/notebook.contribution'; import 'vs/workbench/contrib/notebook/electron-browser/notebook.contribution';
...@@ -97,6 +165,19 @@ import 'vs/workbench/contrib/codeEditor/electron-browser/codeEditor.contribution ...@@ -97,6 +165,19 @@ import 'vs/workbench/contrib/codeEditor/electron-browser/codeEditor.contribution
// External Terminal // External Terminal
import 'vs/workbench/contrib/externalTerminal/node/externalTerminal.contribution'; import 'vs/workbench/contrib/externalTerminal/node/externalTerminal.contribution';
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// The `node` & `electron-browser` layer is deprecated for workbench!
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// Performance // Performance
import 'vs/workbench/contrib/performance/electron-browser/performance.contribution'; import 'vs/workbench/contrib/performance/electron-browser/performance.contribution';
...@@ -109,4 +190,17 @@ import 'vs/workbench/contrib/tasks/electron-browser/taskService'; ...@@ -109,4 +190,17 @@ import 'vs/workbench/contrib/tasks/electron-browser/taskService';
// User Data Sync // User Data Sync
import 'vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution'; import 'vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution';
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//
// NOTE: Please do NOT register services here. Use `registerSingleton()`
// from `workbench.common.main.ts` if the service is shared between
// desktop and web or `workbench.sandbox.main.ts` if the service
// is desktop only.
//
// The `node` & `electron-browser` layer is deprecated for workbench!
//
// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
//#endregion //#endregion
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册