Skip to content
This repository was archived by the owner on Sep 30, 2024. It is now read-only.

Commit 961e69c

Browse files
authored
do not terminate on uncaught extension errors, log them (#1207)
If an uncaught exception occurred in an extension, previously the entire extension host would terminate. Now it will just log the error and continue.
1 parent a774e26 commit 961e69c

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

shared/src/api/protocol/jsonrpc2/transports/webWorker.ts

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,14 @@ class WebWorkerMessageReader extends AbstractMessageReader implements MessageRea
3737
this.fireError(err)
3838
}
3939
})
40-
worker.addEventListener('error', err => {
40+
worker.addEventListener('error', (err: ErrorEvent) => {
4141
this.fireError(err)
42-
terminateWorker(worker)
43-
this.fireClose()
42+
if (err.cancelable) {
43+
err.preventDefault()
44+
} else {
45+
terminateWorker(worker)
46+
this.fireClose()
47+
}
4448
})
4549
}
4650

@@ -106,9 +110,13 @@ function terminateWorker(worker: Worker): void {
106110
* `self`) if the current execution context is in a Worker. Defaults to the global scope.
107111
*/
108112
export function createWebWorkerMessageTransports(worker: Worker = globalWorkerScope()): MessageTransports {
113+
const reader = new WebWorkerMessageReader(worker)
114+
const writer = new WebWorkerMessageWriter(worker)
115+
reader.onError(err => console.error(err))
116+
writer.onError(err => console.error(err))
109117
return {
110-
reader: new WebWorkerMessageReader(worker),
111-
writer: new WebWorkerMessageWriter(worker),
118+
reader,
119+
writer,
112120
}
113121
}
114122

0 commit comments

Comments
 (0)