From 008d14dcf17132969597392b0ca0e0c34a036b69 Mon Sep 17 00:00:00 2001 From: Pieter-Jan Van Robays Date: Mon, 13 Sep 2021 21:04:20 +0200 Subject: [PATCH] Always enable electron contextIsolation --- CHANGELOG.md | 5 +++++ index.js | 34 +++++++++++++++++++++------------- 2 files changed, 26 insertions(+), 13 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0c7ff2d..2d8409b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [Unreleased] +### Fixed +- Always enable electron contextIsolation + +### Changed +- Checkbox type supports a single boolean value ## [2.4.1] - 2020-07-13 ### Fixed diff --git a/index.js b/index.js index f05f455..4782a27 100644 --- a/index.js +++ b/index.js @@ -223,16 +223,7 @@ class ElectronPreferences extends EventEmitter2 { } - show() { - - if (this.prefsWindow) { - - this.prefsWindow.focus(); - - return this.prefsWindow; - - } - + getBrowserWindowOptions() { let browserWindowOpts = { title: 'Preferences', width: 800, @@ -250,10 +241,13 @@ class ElectronPreferences extends EventEmitter2 { const defaultWebPreferences = { nodeIntegration: false, enableRemoteModule: false, - contextIsolation: true, preload: path.join(__dirname, './preload.js'), }; + const unOverridableWebPreferences = { + contextIsolation: true, + } + // User provider `browserWindow`, we load those if (this.options.browserWindowOverrides) { @@ -261,7 +255,6 @@ class ElectronPreferences extends EventEmitter2 { } - // if (browserWindowOpts.webPreferences) { browserWindowOpts.webPreferences = Object.assign(defaultWebPreferences, browserWindowOpts.webPreferences); @@ -272,7 +265,22 @@ class ElectronPreferences extends EventEmitter2 { } - this.prefsWindow = new BrowserWindow(browserWindowOpts); + browserWindowOpts.webPreferences = Object.assign(browserWindowOpts.webPreferences, unOverridableWebPreferences); + + return browserWindowOpts; + } + + show() { + + if (this.prefsWindow) { + + this.prefsWindow.focus(); + + return this.prefsWindow; + + } + + this.prefsWindow = new BrowserWindow(this.getBrowserWindowOptions()); if (this.options.menuBar) {