From d15680096e6e3c1b6e9f13a8b07d3f97d56060c9 Mon Sep 17 00:00:00 2001 From: Vijay A Date: Mon, 18 Apr 2022 01:56:59 -0500 Subject: Upgrade electron to '16.2.2' Remove deprecated 'webPreference' flag --- src/components/services/content/ServiceWebview.js | 2 +- src/electron-util.ts | 6 +++++- src/index.ts | 12 +++++++++--- 3 files changed, 15 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js index f90710c31..38450b98f 100644 --- a/src/components/services/content/ServiceWebview.js +++ b/src/components/services/content/ServiceWebview.js @@ -109,7 +109,7 @@ class ServiceWebview extends Component { nodeintegration webpreferences={`spellcheck=${ isSpellcheckerEnabled ? 1 : 0 - }, contextIsolation=1, nativeWindowOpen=1, enableRemoteModule=1`} + }, contextIsolation=1, nativeWindowOpen=1`} /> ); } diff --git a/src/electron-util.ts b/src/electron-util.ts index 3c395ab10..eede55786 100644 --- a/src/electron-util.ts +++ b/src/electron-util.ts @@ -1,7 +1,7 @@ // Enhanced from: https://github.com/dertieran/electron-util/blob/replace-remote/source/api.js import * as electron from 'electron'; -import { initialize } from '@electron/remote/main'; +import { initialize, enable } from '@electron/remote/main'; export const initializeRemote = () => { if (process.type !== 'browser') { @@ -13,6 +13,10 @@ export const initializeRemote = () => { initialize(); }; +export const enableWebContents = (webContents: electron.WebContents) => { + enable(webContents); +} + export const remote = new Proxy( {}, { diff --git a/src/index.ts b/src/index.ts index c61523584..013cf93ce 100644 --- a/src/index.ts +++ b/src/index.ts @@ -13,7 +13,7 @@ import { emptyDirSync, ensureFileSync } from 'fs-extra'; import { join } from 'path'; import windowStateKeeper from 'electron-window-state'; import ms from 'ms'; -import { initializeRemote } from './electron-util'; +import { enableWebContents, initializeRemote } from './electron-util'; import { enforceMacOSAppLocation } from './enforce-macos-app-location'; initializeRemote(); @@ -214,13 +214,18 @@ const createWindow = () => { webviewTag: true, preload: join(__dirname, 'sentry.js'), nativeWindowOpen: true, - // @ts-expect-error Object literal may only specify known properties, and 'enableRemoteModule' does not exist in type 'WebPreferences'. - enableRemoteModule: true, }, }); + enableWebContents(mainWindow.webContents); + + app.on('browser-window-created', (_, window) => { + enableWebContents(window.webContents); + }); + app.on('web-contents-created', (_e, contents) => { if (contents.getType() === 'webview') { + enableWebContents(contents); contents.on('new-window', event => { event.preventDefault(); }); @@ -523,6 +528,7 @@ ipcMain.on('open-browser-window', (_e, { url, serviceId }) => { nativeWindowOpen: true, }, }); + enableWebContents(child.webContents); child.show(); child.loadURL(url); debug('Received open-browser-window', url); -- cgit v1.2.3-54-g00ecf