diff --git a/src/bootstrap-window.js b/src/bootstrap-window.js index 3fa01024fdd..8dc9f8ef282 100644 --- a/src/bootstrap-window.js +++ b/src/bootstrap-window.js @@ -22,7 +22,7 @@ } }(this, function () { const bootstrapLib = bootstrap(); - const preloadGlobals = globals(); + const preloadGlobals = sandboxGlobals(); const safeProcess = preloadGlobals.process; const useCustomProtocol = safeProcess.sandboxed || typeof safeProcess.env['ENABLE_VSCODE_BROWSER_CODE_LOADING'] === 'string'; @@ -262,7 +262,7 @@ /** * @return {typeof import('./vs/base/parts/sandbox/electron-sandbox/globals')} */ - function globals() { + function sandboxGlobals() { // @ts-ignore (defined in globals.js) return window.vscode; } diff --git a/src/bootstrap.js b/src/bootstrap.js index 02c2ad09906..d75e7633c89 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -173,7 +173,7 @@ /** * @returns {typeof import('./vs/base/parts/sandbox/electron-sandbox/globals') | undefined} */ - function safeGlobals() { + function safeSandboxGlobals() { const globals = (typeof self === 'object' ? self : typeof global === 'object' ? global : {}); return globals.vscode; @@ -183,13 +183,13 @@ * @returns {import('./vs/base/parts/sandbox/electron-sandbox/globals').ISandboxNodeProcess | NodeJS.Process} */ function safeProcess() { - if (typeof process !== 'undefined') { - return process; // Native environment (non-sandboxed) + const sandboxGlobals = safeSandboxGlobals(); + if (sandboxGlobals) { + return sandboxGlobals.process; // Native environment (sandboxed) } - const globals = safeGlobals(); - if (globals) { - return globals.process; // Native environment (sandboxed) + if (typeof process !== 'undefined') { + return process; // Native environment (non-sandboxed) } return undefined; @@ -199,9 +199,9 @@ * @returns {import('./vs/base/parts/sandbox/electron-sandbox/electronTypes').IpcRenderer | undefined} */ function safeIpcRenderer() { - const globals = safeGlobals(); - if (globals) { - return globals.ipcRenderer; + const sandboxGlobals = safeSandboxGlobals(); + if (sandboxGlobals) { + return sandboxGlobals.ipcRenderer; } return undefined; diff --git a/src/vs/base/common/platform.ts b/src/vs/base/common/platform.ts index fce28f439a2..bc9051a6f16 100644 --- a/src/vs/base/common/platform.ts +++ b/src/vs/base/common/platform.ts @@ -53,12 +53,12 @@ declare const self: unknown; export const globals: any = (typeof self === 'object' ? self : typeof global === 'object' ? global : {}); let nodeProcess: INodeProcess | undefined = undefined; -if (typeof process !== 'undefined') { - // Native environment (non-sandboxed) - nodeProcess = process; -} else if (typeof globals.vscode !== 'undefined') { +if (typeof globals.vscode !== 'undefined') { // Native environment (sandboxed) nodeProcess = globals.vscode.process; +} else if (typeof process !== 'undefined') { + // Native environment (non-sandboxed) + nodeProcess = process; } const isElectronRenderer = typeof nodeProcess?.versions?.electron === 'string' && nodeProcess.type === 'renderer'; diff --git a/src/vs/base/common/process.ts b/src/vs/base/common/process.ts index 0cc42d3822f..2df6dd5df2f 100644 --- a/src/vs/base/common/process.ts +++ b/src/vs/base/common/process.ts @@ -6,20 +6,10 @@ import { isWindows, isMacintosh, setImmediate, globals, INodeProcess } from 'vs/base/common/platform'; let safeProcess: INodeProcess & { nextTick: (callback: (...args: any[]) => void) => void; }; - -// Native node.js environment declare const process: INodeProcess; -if (typeof process !== 'undefined') { - safeProcess = { - get platform() { return process.platform; }, - get env() { return process.env; }, - cwd() { return process.env['VSCODE_CWD'] || process.cwd(); }, - nextTick(callback: (...args: any[]) => void): void { return process.nextTick!(callback); } - }; -} // Native sandbox environment -else if (typeof globals.vscode !== 'undefined') { +if (typeof globals.vscode !== 'undefined') { const sandboxProcess: INodeProcess = globals.vscode.process; safeProcess = { get platform() { return sandboxProcess.platform; }, @@ -29,6 +19,16 @@ else if (typeof globals.vscode !== 'undefined') { }; } +// Native node.js environment +else if (typeof process !== 'undefined') { + safeProcess = { + get platform() { return process.platform; }, + get env() { return process.env; }, + cwd() { return process.env['VSCODE_CWD'] || process.cwd(); }, + nextTick(callback: (...args: any[]) => void): void { return process.nextTick!(callback); } + }; +} + // Web environment else { safeProcess = {