From 95054f443f2e9a7d70482ffc49a2d23f2e35fe6b Mon Sep 17 00:00:00 2001 From: Kevin Sawicki Date: Tue, 10 Jan 2017 09:37:38 -0800 Subject: [PATCH] Enable context isolation on child windows --- lib/browser/guest-window-manager.js | 5 +++++ spec/api-browser-window-spec.js | 9 +++++++++ 2 files changed, 14 insertions(+) diff --git a/lib/browser/guest-window-manager.js b/lib/browser/guest-window-manager.js index c0a5efb26..62abc8663 100644 --- a/lib/browser/guest-window-manager.js +++ b/lib/browser/guest-window-manager.js @@ -47,6 +47,11 @@ const mergeBrowserWindowOptions = function (embedder, options) { options.webPreferences.nodeIntegration = false } + // Enable context isolation on child window if enable on parent window + if (embedder.getWebPreferences().contextIsolation === true) { + options.webPreferences.contextIsolation = true + } + // Sets correct openerId here to give correct options to 'new-window' event handler options.webPreferences.openerId = embedder.id diff --git a/spec/api-browser-window-spec.js b/spec/api-browser-window-spec.js index f28759ccb..b777c684d 100644 --- a/spec/api-browser-window-spec.js +++ b/spec/api-browser-window-spec.js @@ -1903,6 +1903,15 @@ describe('BrowserWindow module', function () { }) w.loadURL('file://' + fixtures + '/api/isolated.html') }) + + it('enables context isolation on child windows', function (done) { + app.once('browser-window-created', function (event, window) { + assert.equal(window.webContents.getWebPreferences().contextIsolation, true) + done() + }) + + w.loadURL('file://' + fixtures + '/pages/window-open.html') + }) }) describe('offscreen rendering', function () { -- 2.34.1