Commit 8ccc9fb88d1bc2aa39a121fca766f8ba30115656
Expose host console and exit via ipcRenderer.send
Another step towards abolishing `remote`.Daan Wynen committed on 3/6/2021, 10:11:18 PM
Parent: 2d7dba965d21cf17cf96b29032c8aa1e027e73c9
Files changed
assets/base.html | changed |
index.js | changed |
package.json | changed |
assets/base.html | |||
---|---|---|---|
@@ -6,10 +6,16 @@ | |||
6 | 6 … | // redirect console to main process | |
7 | 7 … | var electron = require('electron') | |
8 | 8 … | var localLog = console.log | |
9 | 9 … | var localError = console.error | |
10 | - var remoteLog = electron.remote.getGlobal('console').log | ||
11 | - var remoteError = electron.remote.getGlobal('console').error | ||
10 … | + var remoteLog = function (o) { | ||
11 … | + const payload = JSON.parse(JSON.stringify(o, null, 2)) | ||
12 … | + electron.ipcRenderer.invoke('consoleLog', `${payload}`) | ||
13 … | + } | ||
14 … | + var remoteError = function (o) { | ||
15 … | + const payload = JSON.parse(JSON.stringify(o, null, 2)) | ||
16 … | + electron.ipcRenderer.invoke('consoleError', `${payload}`) | ||
17 … | + } | ||
12 | 18 … | ||
13 | 19 … | console.log = function (...args) { | |
14 | 20 … | localLog.apply(console, args) | |
15 | 21 … | remoteLog(...args) | |
@@ -19,13 +25,14 @@ | |||
19 | 25 … | localError.apply(console, args) | |
20 | 26 … | remoteError(...args) | |
21 | 27 … | } | |
22 | 28 … | ||
23 | - process.exit = electron.remote.app.quit | ||
29 … | + process.exit = function(status) {electron.ipcRenderer.sendSync('exit')} | ||
24 | 30 … | // redirect errors to stderr | |
25 | 31 … | window.addEventListener('error', function (e) { | |
26 | 32 … | e.preventDefault() | |
27 | - console.error(e.error.stack || 'Uncaught ' + e.error) | ||
33 … | + console.log(e) | ||
34 … | + console.error(e.error?.stack || 'Uncaught ' + e.error) | ||
28 | 35 … | }) | |
29 | 36 … | </script> | |
30 | 37 … | </body> | |
31 | 38 … | </html> |
index.js | ||
---|---|---|
@@ -149,8 +149,12 @@ | ||
149 | 149 … | electron.app.on('before-quit', function () { |
150 | 150 … | quitting = true |
151 | 151 … | }) |
152 | 152 … | |
153 … | + electron.ipcMain.handle('consoleLog', (ev, o) => console.log(o)) | |
154 … | + electron.ipcMain.handle('consoleError', (ev, o) => console.error(o)) | |
155 … | + electron.ipcMain.on('exit', (ev, code) => process.exit(code)) | |
156 … | + | |
153 | 157 … | electron.ipcMain.on('open-background-devtools', function () { |
154 | 158 … | if (windows.background) { |
155 | 159 … | windows.background.webContents.openDevTools({ mode: 'detach' }) |
156 | 160 … | } |
package.json | ||
---|---|---|
@@ -23,8 +23,9 @@ | ||
23 | 23 … | "compare-version": "^0.1.2", |
24 | 24 … | "deep-equal": "^2.0.1", |
25 | 25 … | "depject": "^4.1.1", |
26 | 26 … | "depnest": "^1.3.0", |
27 … | + "electron-context-menu": "^2.5.0", | |
27 | 28 … | "electron-default-menu": "~1.0.1", |
28 | 29 … | "electron-window-state": "^5.0.3", |
29 | 30 … | "escape-string-regexp": "^4.0.0", |
30 | 31 … | "fix-path": "^3.0.0", |
Built with git-ssb-web