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