From 3fa1bdd574773e79f4861f6f3034fb9c4ec63ffe Mon Sep 17 00:00:00 2001 From: "(quasar) nebula" Date: Fri, 17 May 2024 21:41:55 -0300 Subject: client: report uncaught runtime errors in search worker --- src/static/js/client.js | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/static/js/client.js') diff --git a/src/static/js/client.js b/src/static/js/client.js index 58f1acb9..9bef44a2 100644 --- a/src/static/js/client.js +++ b/src/static/js/client.js @@ -3455,6 +3455,7 @@ const wikiSearchInfo = initInfo('wikiSearchInfo', { whenWorkerAlive: [], whenWorkerReady: [], whenWorkerFailsToInitialize: [], + whenWorkerHasRuntimeError: [], whenDownloadBegins: [], whenDownloadsBegin: [], @@ -3533,6 +3534,11 @@ function handleSearchWorkerStatusMessage(message) { dispatchInternalEvent(event, 'whenWorkerFailsToInitialize'); break; + case 'runtime-error': + console.debug(`Search worker had an uncaught runtime error.`); + dispatchInternalEvent(event, 'whenWorkerHasRuntimeError'); + break; + default: console.warn(`Unknown status "${message.data.status}" <- from search worker`); break; @@ -3782,6 +3788,10 @@ function addSidebarSearchInternalListeners() { trackSidebarSearchWorkerFailsToInitialize, updateSidebarSearchStatus); + wikiSearchInfo.event.whenWorkerHasRuntimeError.push( + trackSidebarSearchWorkerHasRuntimeError, + updateSidebarSearchStatus); + wikiSearchInfo.event.whenDownloadsBegin.push( trackSidebarSearchDownloadsBegin, updateSidebarSearchStatus); @@ -3973,6 +3983,13 @@ function trackSidebarSearchWorkerFailsToInitialize() { state.searchStage = 'failed'; } +function trackSidebarSearchWorkerHasRuntimeError() { + const {state} = sidebarSearchInfo; + + state.workerStatus = 'failed'; + state.searchStage = 'failed'; +} + function trackSidebarSearchDownloadsBegin(event) { const {state} = sidebarSearchInfo; -- cgit 1.3.0-6-gf8a5