diff --git a/packages/playwright-core/src/protocol/transport.ts b/packages/playwright-core/src/protocol/transport.ts index 8026f00c21..92991af7ae 100644 --- a/packages/playwright-core/src/protocol/transport.ts +++ b/packages/playwright-core/src/protocol/transport.ts @@ -106,17 +106,18 @@ export class PipeTransport { export class IpcTransport { private _process: NodeJS.Process | ChildProcess; + private _waitForNextTask = makeWaitForNextTask(); onmessage?: (message: string) => void; onclose?: () => void; constructor(process: NodeJS.Process | ChildProcess) { this._process = process; - this._process.on('message', message => { + this._process.on('message', message => this._waitForNextTask(() => { if (message === '') this.onclose?.(); else this.onmessage?.(message); - }); + })); } send(message: string) {