From 3a2d35fed20ba23ce86f9b15306c584be2726282 Mon Sep 17 00:00:00 2001 From: Yury Semikhatsky Date: Thu, 30 Jan 2020 11:12:57 -0800 Subject: [PATCH] fix: do actually catch worker initialization exceptions --- src/webkit/wkWorkers.ts | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/src/webkit/wkWorkers.ts b/src/webkit/wkWorkers.ts index 13de199ace..20f3a2a041 100644 --- a/src/webkit/wkWorkers.ts +++ b/src/webkit/wkWorkers.ts @@ -33,7 +33,7 @@ export class WKWorkers { helper.removeEventListeners(this._sessionListeners); this.clear(); this._sessionListeners = [ - helper.addEventListener(session, 'Worker.workerCreated', async (event: Protocol.Worker.workerCreatedPayload) => { + helper.addEventListener(session, 'Worker.workerCreated', (event: Protocol.Worker.workerCreatedPayload) => { const worker = new Worker(event.url); const workerSession = new WKSession(session.connection, event.workerId, 'Most likely the worker has been closed.', (message: any) => { session.send('Worker.sendMessageToWorker', { @@ -47,17 +47,15 @@ export class WKWorkers { worker._createExecutionContext(new WKExecutionContext(workerSession, undefined)); this._page._addWorker(event.workerId, worker); workerSession.on('Console.messageAdded', event => this._onConsoleMessage(worker, event)); - try { - Promise.all([ - workerSession.send('Runtime.enable'), - workerSession.send('Console.enable'), - session.send('Worker.initialized', { workerId: event.workerId }).catch(e => { - this._page._removeWorker(event.workerId); - }) - ]); - } catch (e) { + Promise.all([ + workerSession.send('Runtime.enable'), + workerSession.send('Console.enable'), + session.send('Worker.initialized', { workerId: event.workerId }).catch(e => { + this._page._removeWorker(event.workerId); + }) + ]).catch(e => { // Worker can go as we are initializing it. - } + }); }), helper.addEventListener(session, 'Worker.dispatchMessageFromWorker', (event: Protocol.Worker.dispatchMessageFromWorkerPayload) => { const workerSession = this._workerSessions.get(event.workerId)!;