From d9122e457f9ea8e7cf4986970575ea6f9228bad0 Mon Sep 17 00:00:00 2001 From: Deepak Mohan Date: Wed, 8 May 2019 14:37:04 -0700 Subject: [PATCH] REVIEW: Enable node integration for browser window The default values have been flipped for security in https://github.com/electron/electron/pull/16235 --- src/vs/code/electron-main/sharedProcess.ts | 1 + src/vs/code/electron-main/window.ts | 3 ++- .../contrib/webview/electron-browser/webviewElement.ts | 2 +- test/electron/index.js | 3 ++- 4 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index 441277600e284..29165fab947e9 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -39,6 +39,7 @@ export class SharedProcess implements ISharedProcess { images: false, webaudio: false, webgl: false, + nodeIntegration: true, disableBlinkFeatures: 'Auxclick' // do NOT change, allows us to identify this window as shared-process in the process explorer } }); diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts index 8f0afb68cd976..363c8b0096b2f 100644 --- a/src/vs/code/electron-main/window.ts +++ b/src/vs/code/electron-main/window.ts @@ -135,7 +135,8 @@ export class CodeWindow extends Disposable implements ICodeWindow { // want to enforce that Code stays in the foreground. This triggers a disable_hidden_ // flag that Electron provides via patch: // https://github.com/electron/libchromiumcontent/blob/master/patches/common/chromium/disable_hidden.patch - backgroundThrottling: false + backgroundThrottling: false, + nodeIntegration: true } }; diff --git a/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts b/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts index 1477b88a2134c..fa5b1414f3d87 100644 --- a/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts +++ b/src/vs/workbench/contrib/webview/electron-browser/webviewElement.ts @@ -383,7 +383,7 @@ export class WebviewElement extends Disposable implements Webview { this._webview = document.createElement('webview'); this._webview.setAttribute('partition', `webview${Date.now()}`); - this._webview.setAttribute('webpreferences', 'contextIsolation=yes'); + this._webview.setAttribute('webpreferences', 'contextIsolation=yes,nodeIntegration=yes'); this._webview.style.flex = '0 1'; this._webview.style.width = '0'; diff --git a/test/electron/index.js b/test/electron/index.js index ebd97e3b98bf0..4c1d42d56a7c4 100644 --- a/test/electron/index.js +++ b/test/electron/index.js @@ -106,7 +106,8 @@ app.on('ready', () => { show: false, webPreferences: { backgroundThrottling: false, - webSecurity: false + webSecurity: false, + nodeIntegration: true } });