diff options
-rw-r--r-- | babel.config.json | 2 | ||||
-rw-r--r-- | package-lock.json | 28 | ||||
-rw-r--r-- | package.json | 4 | ||||
-rw-r--r-- | src/components/services/content/ServiceWebview.js | 2 | ||||
-rw-r--r-- | src/electron-util.ts | 6 | ||||
-rw-r--r-- | src/index.ts | 12 |
6 files changed, 32 insertions, 22 deletions
diff --git a/babel.config.json b/babel.config.json index 7ef38a9a8..97250ae80 100644 --- a/babel.config.json +++ b/babel.config.json | |||
@@ -4,7 +4,7 @@ | |||
4 | "@babel/preset-env", | 4 | "@babel/preset-env", |
5 | { | 5 | { |
6 | "targets": { | 6 | "targets": { |
7 | "electron": 15 | 7 | "electron": 16 |
8 | } | 8 | } |
9 | } | 9 | } |
10 | ], | 10 | ], |
diff --git a/package-lock.json b/package-lock.json index 1442956e3..eadb96df9 100644 --- a/package-lock.json +++ b/package-lock.json | |||
@@ -21,7 +21,7 @@ | |||
21 | "@adonisjs/session": "^1.0.29", | 21 | "@adonisjs/session": "^1.0.29", |
22 | "@adonisjs/shield": "^1.0.8", | 22 | "@adonisjs/shield": "^1.0.8", |
23 | "@adonisjs/validator": "^5.0.6", | 23 | "@adonisjs/validator": "^5.0.6", |
24 | "@electron/remote": "1.2.1", | 24 | "@electron/remote": "2.0.1", |
25 | "@mdi/js": "^6.3.95", | 25 | "@mdi/js": "^6.3.95", |
26 | "@mdi/react": "^1.5.0", | 26 | "@mdi/react": "^1.5.0", |
27 | "@sentry/electron": "^2.5.4", | 27 | "@sentry/electron": "^2.5.4", |
@@ -114,7 +114,7 @@ | |||
114 | "concurrently": "^7.0.0", | 114 | "concurrently": "^7.0.0", |
115 | "cross-env": "^7.0.3", | 115 | "cross-env": "^7.0.3", |
116 | "dotenv": "^10.0.0", | 116 | "dotenv": "^10.0.0", |
117 | "electron": "15.5.1", | 117 | "electron": "16.2.2", |
118 | "electron-builder": "^22.14.12", | 118 | "electron-builder": "^22.14.12", |
119 | "electron-notarize": "^1.1.1", | 119 | "electron-notarize": "^1.1.1", |
120 | "eslint": "^8.6.0", | 120 | "eslint": "^8.6.0", |
@@ -2830,9 +2830,9 @@ | |||
2830 | } | 2830 | } |
2831 | }, | 2831 | }, |
2832 | "node_modules/@electron/remote": { | 2832 | "node_modules/@electron/remote": { |
2833 | "version": "1.2.1", | 2833 | "version": "2.0.1", |
2834 | "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-1.2.1.tgz", | 2834 | "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.1.tgz", |
2835 | "integrity": "sha512-yKh60I8KjezQkZqeuN5Nu2O/Z72+tgNgzvAa8QQPLtQbsrCOaeIWdXZQqierz4jQ5jzTNUk6KIcK3V2kFeaxaQ==", | 2835 | "integrity": "sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==", |
2836 | "peerDependencies": { | 2836 | "peerDependencies": { |
2837 | "electron": ">= 10.0.0-beta.1" | 2837 | "electron": ">= 10.0.0-beta.1" |
2838 | } | 2838 | } |
@@ -10780,9 +10780,9 @@ | |||
10780 | } | 10780 | } |
10781 | }, | 10781 | }, |
10782 | "node_modules/electron": { | 10782 | "node_modules/electron": { |
10783 | "version": "15.5.1", | 10783 | "version": "16.2.2", |
10784 | "resolved": "https://registry.npmjs.org/electron/-/electron-15.5.1.tgz", | 10784 | "resolved": "https://registry.npmjs.org/electron/-/electron-16.2.2.tgz", |
10785 | "integrity": "sha512-V3tOikVM7tGK4n5+MkLN+v73h0tndDeaQXy8kjkHj5NFIgQPwKD9S8XjQOBa+Cm5l3xbQrUsN5X6OmYS2WfPlg==", | 10785 | "integrity": "sha512-MOZCewpDvhiuYCw8UnJnQxU/9cni4tlHHWBdi0JWbcdBOrGsDMSt17nuPwR5wSf1e7mSfofGIUPg9iHS5KA8Eg==", |
10786 | "dev": true, | 10786 | "dev": true, |
10787 | "hasInstallScript": true, | 10787 | "hasInstallScript": true, |
10788 | "dependencies": { | 10788 | "dependencies": { |
@@ -32876,9 +32876,9 @@ | |||
32876 | } | 32876 | } |
32877 | }, | 32877 | }, |
32878 | "@electron/remote": { | 32878 | "@electron/remote": { |
32879 | "version": "1.2.1", | 32879 | "version": "2.0.1", |
32880 | "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-1.2.1.tgz", | 32880 | "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.0.1.tgz", |
32881 | "integrity": "sha512-yKh60I8KjezQkZqeuN5Nu2O/Z72+tgNgzvAa8QQPLtQbsrCOaeIWdXZQqierz4jQ5jzTNUk6KIcK3V2kFeaxaQ==" | 32881 | "integrity": "sha512-bGX4/yB2bPZwXm1DsxgoABgH0Cz7oFtXJgkerB8VrStYdTyvhGAULzNLRn9rVmeAuC3VUDXaXpZIlZAZHpsLIA==" |
32882 | }, | 32882 | }, |
32883 | "@electron/universal": { | 32883 | "@electron/universal": { |
32884 | "version": "1.0.5", | 32884 | "version": "1.0.5", |
@@ -39311,9 +39311,9 @@ | |||
39311 | } | 39311 | } |
39312 | }, | 39312 | }, |
39313 | "electron": { | 39313 | "electron": { |
39314 | "version": "15.5.1", | 39314 | "version": "16.2.2", |
39315 | "resolved": "https://registry.npmjs.org/electron/-/electron-15.5.1.tgz", | 39315 | "resolved": "https://registry.npmjs.org/electron/-/electron-16.2.2.tgz", |
39316 | "integrity": "sha512-V3tOikVM7tGK4n5+MkLN+v73h0tndDeaQXy8kjkHj5NFIgQPwKD9S8XjQOBa+Cm5l3xbQrUsN5X6OmYS2WfPlg==", | 39316 | "integrity": "sha512-MOZCewpDvhiuYCw8UnJnQxU/9cni4tlHHWBdi0JWbcdBOrGsDMSt17nuPwR5wSf1e7mSfofGIUPg9iHS5KA8Eg==", |
39317 | "dev": true, | 39317 | "dev": true, |
39318 | "requires": { | 39318 | "requires": { |
39319 | "@electron/get": "^1.13.0", | 39319 | "@electron/get": "^1.13.0", |
diff --git a/package.json b/package.json index 7dbe47e9b..a5f465599 100644 --- a/package.json +++ b/package.json | |||
@@ -56,7 +56,7 @@ | |||
56 | "@adonisjs/session": "^1.0.29", | 56 | "@adonisjs/session": "^1.0.29", |
57 | "@adonisjs/shield": "^1.0.8", | 57 | "@adonisjs/shield": "^1.0.8", |
58 | "@adonisjs/validator": "^5.0.6", | 58 | "@adonisjs/validator": "^5.0.6", |
59 | "@electron/remote": "1.2.1", | 59 | "@electron/remote": "2.0.1", |
60 | "@mdi/js": "^6.3.95", | 60 | "@mdi/js": "^6.3.95", |
61 | "@mdi/react": "^1.5.0", | 61 | "@mdi/react": "^1.5.0", |
62 | "@sentry/electron": "^2.5.4", | 62 | "@sentry/electron": "^2.5.4", |
@@ -149,7 +149,7 @@ | |||
149 | "concurrently": "^7.0.0", | 149 | "concurrently": "^7.0.0", |
150 | "cross-env": "^7.0.3", | 150 | "cross-env": "^7.0.3", |
151 | "dotenv": "^10.0.0", | 151 | "dotenv": "^10.0.0", |
152 | "electron": "15.5.1", | 152 | "electron": "16.2.2", |
153 | "electron-builder": "^22.14.12", | 153 | "electron-builder": "^22.14.12", |
154 | "electron-notarize": "^1.1.1", | 154 | "electron-notarize": "^1.1.1", |
155 | "eslint": "^8.6.0", | 155 | "eslint": "^8.6.0", |
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 { | |||
109 | nodeintegration | 109 | nodeintegration |
110 | webpreferences={`spellcheck=${ | 110 | webpreferences={`spellcheck=${ |
111 | isSpellcheckerEnabled ? 1 : 0 | 111 | isSpellcheckerEnabled ? 1 : 0 |
112 | }, contextIsolation=1, nativeWindowOpen=1, enableRemoteModule=1`} | 112 | }, contextIsolation=1, nativeWindowOpen=1`} |
113 | /> | 113 | /> |
114 | ); | 114 | ); |
115 | } | 115 | } |
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 @@ | |||
1 | // Enhanced from: https://github.com/dertieran/electron-util/blob/replace-remote/source/api.js | 1 | // Enhanced from: https://github.com/dertieran/electron-util/blob/replace-remote/source/api.js |
2 | 2 | ||
3 | import * as electron from 'electron'; | 3 | import * as electron from 'electron'; |
4 | import { initialize } from '@electron/remote/main'; | 4 | import { initialize, enable } from '@electron/remote/main'; |
5 | 5 | ||
6 | export const initializeRemote = () => { | 6 | export const initializeRemote = () => { |
7 | if (process.type !== 'browser') { | 7 | if (process.type !== 'browser') { |
@@ -13,6 +13,10 @@ export const initializeRemote = () => { | |||
13 | initialize(); | 13 | initialize(); |
14 | }; | 14 | }; |
15 | 15 | ||
16 | export const enableWebContents = (webContents: electron.WebContents) => { | ||
17 | enable(webContents); | ||
18 | } | ||
19 | |||
16 | export const remote = new Proxy( | 20 | export const remote = new Proxy( |
17 | {}, | 21 | {}, |
18 | { | 22 | { |
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'; | |||
13 | import { join } from 'path'; | 13 | import { join } from 'path'; |
14 | import windowStateKeeper from 'electron-window-state'; | 14 | import windowStateKeeper from 'electron-window-state'; |
15 | import ms from 'ms'; | 15 | import ms from 'ms'; |
16 | import { initializeRemote } from './electron-util'; | 16 | import { enableWebContents, initializeRemote } from './electron-util'; |
17 | import { enforceMacOSAppLocation } from './enforce-macos-app-location'; | 17 | import { enforceMacOSAppLocation } from './enforce-macos-app-location'; |
18 | 18 | ||
19 | initializeRemote(); | 19 | initializeRemote(); |
@@ -214,13 +214,18 @@ const createWindow = () => { | |||
214 | webviewTag: true, | 214 | webviewTag: true, |
215 | preload: join(__dirname, 'sentry.js'), | 215 | preload: join(__dirname, 'sentry.js'), |
216 | nativeWindowOpen: true, | 216 | nativeWindowOpen: true, |
217 | // @ts-expect-error Object literal may only specify known properties, and 'enableRemoteModule' does not exist in type 'WebPreferences'. | ||
218 | enableRemoteModule: true, | ||
219 | }, | 217 | }, |
220 | }); | 218 | }); |
221 | 219 | ||
220 | enableWebContents(mainWindow.webContents); | ||
221 | |||
222 | app.on('browser-window-created', (_, window) => { | ||
223 | enableWebContents(window.webContents); | ||
224 | }); | ||
225 | |||
222 | app.on('web-contents-created', (_e, contents) => { | 226 | app.on('web-contents-created', (_e, contents) => { |
223 | if (contents.getType() === 'webview') { | 227 | if (contents.getType() === 'webview') { |
228 | enableWebContents(contents); | ||
224 | contents.on('new-window', event => { | 229 | contents.on('new-window', event => { |
225 | event.preventDefault(); | 230 | event.preventDefault(); |
226 | }); | 231 | }); |
@@ -523,6 +528,7 @@ ipcMain.on('open-browser-window', (_e, { url, serviceId }) => { | |||
523 | nativeWindowOpen: true, | 528 | nativeWindowOpen: true, |
524 | }, | 529 | }, |
525 | }); | 530 | }); |
531 | enableWebContents(child.webContents); | ||
526 | child.show(); | 532 | child.show(); |
527 | child.loadURL(url); | 533 | child.loadURL(url); |
528 | debug('Received open-browser-window', url); | 534 | debug('Received open-browser-window', url); |