Enable context isolation on child windows
authorKevin Sawicki <kevinsawicki@gmail.com>
Tue, 10 Jan 2017 17:37:38 +0000 (09:37 -0800)
committerKevin Sawicki <kevinsawicki@gmail.com>
Mon, 16 Jan 2017 20:38:16 +0000 (12:38 -0800)
lib/browser/guest-window-manager.js
spec/api-browser-window-spec.js

index c0a5efb..62abc86 100644 (file)
@@ -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
 
index f28759c..b777c68 100644 (file)
@@ -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 () {