diff --git a/src/appWindow.js b/src/appWindow.js index f115587..7a755cc 100644 --- a/src/appWindow.js +++ b/src/appWindow.js @@ -1,23 +1,47 @@ +/* + * Main window event and additional javascript + */ const webview = document.getElementById('webview') const msg = document.getElementById('loadingmsg') var initial = true +/* + * Event Description: Fired when document in the given frame is loaded. + */ webview.addEventListener('dom-ready', () => { - // webview.openDevTools() + //webview.openDevTools() //<--- This line must be commented out before commit to git. if(!initial) return initial = false webview.setZoomLevel(0) +}) - webview.addEventListener('did-fail-load', (e, string) => { - console.log('Failed to load') - msg.style.display = "block" - setTimeout(() => { - webview.reload() - }, 13000) - }) - webview.addEventListener('page-title-updated', (e) => { - msg.style.display = "none" - console.log(e) - }) +const failToLoadPage = (e, string) => { + console.log('Failed to load') + msg.style.display = "block" + setTimeout(() => { + webview.reload() + }, 13000) +} +/* + * Event Description: This event is like did-finish-load, but fired when the load failed or was cancelled, e.g. window.stop() is invoked. + */ +webview.addEventListener('did-fail-load', failToLoadPage) //<--- Converted to a lambda in order to be used during the 'removeEventListener' call. + +/* + * Fired when page title is set during navigation. + */ +webview.addEventListener('page-title-updated', (e) => { + msg.style.display = "none" + console.log(e) +}) + +/* + * Event Description: Fired when a load has committed. This includes navigation within the current document as well as subframe document-level loads, but does not include asynchronous resource loads. + * + * NOTE: This event is been used in order to cancel the reload of the server page. + */ +webview.addEventListener('load-commit', (e) => { + console.log('Finished the loading process') + webview.removeEventListener('did-fail-load', failToLoadPage) }) \ No newline at end of file diff --git a/src/boinc.js b/src/boinc.js index 4c37839..465bdc4 100644 --- a/src/boinc.js +++ b/src/boinc.js @@ -146,16 +146,19 @@ boinc.start = async (data) => { boinc.process.on('exit', (code, signal) => { log.info('detected close code:', code, signal) log.info('should be running', boinc.shouldBeRunning) - boinc.process.removeAllListeners() - boinc.process = null - if(boinc.shouldBeRunning) { - boinc.send('message', 'The Miner stopped and Boid is restarting it') - boinc.start() - } else { - boinc.send('message', 'BOINC was stopped') - boinc.send('status', 'Stopped') - boinc.send('toggle', false) - cfg.set('state.cpu.toggle', false) + //Check if the 'process' is a valid object. + if(boinc.process){ + boinc.process.removeAllListeners() + boinc.process = null + if(boinc.shouldBeRunning) { + boinc.send('message', 'The Miner stopped and Boid is restarting it') + boinc.start() + } else { + boinc.send('message', 'BOINC was stopped') + boinc.send('status', 'Stopped') + boinc.send('toggle', false) + cfg.set('state.cpu.toggle', false) + } } }) }catch(error){if(ec)ec(error)} diff --git a/src/registerGlobalListeners.js b/src/registerGlobalListeners.js index d1f7ada..f9760fc 100644 --- a/src/registerGlobalListeners.js +++ b/src/registerGlobalListeners.js @@ -15,7 +15,7 @@ function init(appWindow) { app.on('before-quit', async ()=>{ isQuiting = true if (appWindow) appWindow.close() - await boinc.killExisting() + if(boinc.process) await boinc.killExisting() //<--- We must check if the 'process' is active prior killing it. If not, we get errors in console. }) app.on('activate', () => appWindow.show) appWindow.on('ready-to-show', () => {