From f40682c8a939d681676855847ba649aaef1285fe Mon Sep 17 00:00:00 2001 From: Oj Date: Sun, 17 Apr 2022 18:31:39 +0100 Subject: [PATCH] [Bootstrap] Deep integrate ErrorHandler, also fix uncaught in Splash ThemeSync --- src/bootstrap.js | 17 +++++++++++++---- src/errorHandler.js | 25 ------------------------- src/splash/index.js | 4 +++- 3 files changed, 16 insertions(+), 30 deletions(-) delete mode 100644 src/errorHandler.js diff --git a/src/bootstrap.js b/src/bootstrap.js index 51de6cc..6e47c31 100644 --- a/src/bootstrap.js +++ b/src/bootstrap.js @@ -1,4 +1,4 @@ -const { app } = require('electron'); +const { app, dialog } = require('electron'); const { readFileSync } = require('fs'); const { join } = require('path'); @@ -14,8 +14,17 @@ global.releaseChannel = buildInfo.releaseChannel; log('BuildInfo', buildInfo); -const { fatal, handled, init: EHInit } = require('./errorHandler'); -EHInit(); +const fatal = e => { + log('Fatal', e); + + dialog.showMessageBox({ + type: 'error', + message: 'A fatal Javascript error occured', + detail: e?.stack ?? String(e) + }).then(() => app.quit()); +}; +// process.on('uncaughtException', fatal); + const splash = require('./splash'); @@ -69,7 +78,7 @@ const startUpdate = async () => { inst.on('host-updated', () => autoStart.update(() => {})); inst.on('unhandled-exception', fatal); inst.on('InconsistentInstallerState', fatal); - inst.on('update-error', handled); + inst.on('update-error', console.error); require('./firstRun').do(inst); } else { diff --git a/src/errorHandler.js b/src/errorHandler.js deleted file mode 100644 index 23b59f6..0000000 --- a/src/errorHandler.js +++ /dev/null @@ -1,25 +0,0 @@ -const { app, dialog } = require("electron"); - -exports.init = () => { - process.on('uncaughtException', err => { - const stack = err.stack ?? String(err); - console.warn(stack); - - // dialog.showErrorBox('A JavaScript error occurred in the main process', message); - }); -}; - - -exports.fatal = (err) => { - log('ErrorHandler', 'Fatal:', err); - - dialog.showMessageBox(null, { - type: 'error', - message: 'A fatal Javascript error occured', - detail: err?.stack ?? String(err) - }).then(() => app.quit()); -}; - -exports.handled = (err) => { - log('ErrorHandler', 'Handled:', err); -}; \ No newline at end of file diff --git a/src/splash/index.js b/src/splash/index.js index 6a89f35..f51c743 100644 --- a/src/splash/index.js +++ b/src/splash/index.js @@ -85,7 +85,9 @@ const launchSplash = (startMin) => { if (process.platform !== 'darwin') win.on('closed', () => !launchedMainWindow && app.quit()); wc.once('dom-ready', () => { - if (oaConfig.themeSync !== false) wc.insertCSS(JSON.parse(fs.readFileSync(join(paths.getUserData(), 'userDataCache.json'), 'utf8')).openasarSplashCSS); + if (oaConfig.themeSync !== false) try { + wc.insertCSS(JSON.parse(fs.readFileSync(join(paths.getUserData(), 'userDataCache.json'), 'utf8')).openasarSplashCSS); + } catch { } if (oaConfig.splashText === true) { const buildInfo = require('../utils/buildInfo.js');