From ac25fdd74b4e9e309d0a2b5b508bd316a7bd70ec Mon Sep 17 00:00:00 2001 From: Pavel Feldman Date: Thu, 10 Nov 2022 12:59:27 -0800 Subject: [PATCH] chore: fix ff tests with new events mode (#18708) --- .../src/server/dispatchers/browserContextDispatcher.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts b/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts index 915ffb0a46..ba644d06e0 100644 --- a/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts +++ b/packages/playwright-core/src/server/dispatchers/browserContextDispatcher.ts @@ -89,8 +89,13 @@ export class BrowserContextDispatcher extends Dispatcher this._dispatchEvent('serviceWorker', { worker: new WorkerDispatcher(this, serviceWorker) })); } this.addObjectListener(BrowserContext.Events.Request, (request: Request) => { + // Create dispatcher, if: + // - There are listeners to the requests. + // - We are redirected from a reported request so that redirectedTo was updated on client. + // - We are a navigation request and dispatcher will be reported as a part of the goto return value and newDocument param anyways. + // By the time requestFinished is triggered to update the request, we should have a request on the client already. const redirectFromDispatcher = request.redirectedFrom() && existingDispatcher(request.redirectedFrom()); - if (!redirectFromDispatcher && !this._shouldDispatchNetworkEvent(request, 'request')) + if (!redirectFromDispatcher && !this._shouldDispatchNetworkEvent(request, 'request') && !request.isNavigationRequest()) return; const requestDispatcher = RequestDispatcher.from(this, request); this._dispatchEvent('request', {