mirror of
https://github.com/microsoft/playwright.git
synced 2025-06-26 21:40:17 +00:00
fix: do actually catch worker initialization exceptions (#762)
This commit is contained in:
parent
603b9f54dd
commit
1b012e50e9
@ -33,7 +33,7 @@ export class WKWorkers {
|
|||||||
helper.removeEventListeners(this._sessionListeners);
|
helper.removeEventListeners(this._sessionListeners);
|
||||||
this.clear();
|
this.clear();
|
||||||
this._sessionListeners = [
|
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 worker = new Worker(event.url);
|
||||||
const workerSession = new WKSession(session.connection, event.workerId, 'Most likely the worker has been closed.', (message: any) => {
|
const workerSession = new WKSession(session.connection, event.workerId, 'Most likely the worker has been closed.', (message: any) => {
|
||||||
session.send('Worker.sendMessageToWorker', {
|
session.send('Worker.sendMessageToWorker', {
|
||||||
@ -47,17 +47,14 @@ export class WKWorkers {
|
|||||||
worker._createExecutionContext(new WKExecutionContext(workerSession, undefined));
|
worker._createExecutionContext(new WKExecutionContext(workerSession, undefined));
|
||||||
this._page._addWorker(event.workerId, worker);
|
this._page._addWorker(event.workerId, worker);
|
||||||
workerSession.on('Console.messageAdded', event => this._onConsoleMessage(worker, event));
|
workerSession.on('Console.messageAdded', event => this._onConsoleMessage(worker, event));
|
||||||
try {
|
Promise.all([
|
||||||
Promise.all([
|
workerSession.send('Runtime.enable'),
|
||||||
workerSession.send('Runtime.enable'),
|
workerSession.send('Console.enable'),
|
||||||
workerSession.send('Console.enable'),
|
session.send('Worker.initialized', { workerId: event.workerId })
|
||||||
session.send('Worker.initialized', { workerId: event.workerId }).catch(e => {
|
]).catch(e => {
|
||||||
this._page._removeWorker(event.workerId);
|
|
||||||
})
|
|
||||||
]);
|
|
||||||
} catch (e) {
|
|
||||||
// Worker can go as we are initializing it.
|
// Worker can go as we are initializing it.
|
||||||
}
|
this._page._removeWorker(event.workerId);
|
||||||
|
});
|
||||||
}),
|
}),
|
||||||
helper.addEventListener(session, 'Worker.dispatchMessageFromWorker', (event: Protocol.Worker.dispatchMessageFromWorkerPayload) => {
|
helper.addEventListener(session, 'Worker.dispatchMessageFromWorker', (event: Protocol.Worker.dispatchMessageFromWorkerPayload) => {
|
||||||
const workerSession = this._workerSessions.get(event.workerId)!;
|
const workerSession = this._workerSessions.get(event.workerId)!;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user