From d3f00bf0324528f7d35b973d6430894ba9db1896 Mon Sep 17 00:00:00 2001 From: jrandolf <101637635+jrandolf@users.noreply.github.com> Date: Mon, 12 Feb 2024 16:58:22 +0100 Subject: [PATCH] chore: use `redirectCount` for redirect detection in `bidi/core` (#11896) --- packages/puppeteer-core/src/bidi/core/BrowsingContext.ts | 5 +++-- packages/puppeteer-core/src/bidi/core/Request.ts | 8 +++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/packages/puppeteer-core/src/bidi/core/BrowsingContext.ts b/packages/puppeteer-core/src/bidi/core/BrowsingContext.ts index e8bd93433be..89ffae5ab32 100644 --- a/packages/puppeteer-core/src/bidi/core/BrowsingContext.ts +++ b/packages/puppeteer-core/src/bidi/core/BrowsingContext.ts @@ -241,10 +241,11 @@ export class BrowsingContext extends EventEmitter<{ if (event.context !== this.id) { return; } - // Means the request is a redirect. This is handled in Request. - if (this.#requests.has(event.request.request)) { + if (event.redirectCount !== 0) { + // Means the request is a redirect. This is handled in Request. return; } + const request = Request.from(this, event); this.#requests.set(request.id, request); this.emit('request', {request}); diff --git a/packages/puppeteer-core/src/bidi/core/Request.ts b/packages/puppeteer-core/src/bidi/core/Request.ts index 8ff412e3594..fd616b668d9 100644 --- a/packages/puppeteer-core/src/bidi/core/Request.ts +++ b/packages/puppeteer-core/src/bidi/core/Request.ts @@ -69,7 +69,7 @@ export class Request extends EventEmitter<{ if ( event.context !== this.#browsingContext.id || event.request.request !== this.id || - this.#redirect !== undefined + event.redirectCount !== this.#event.redirectCount + 1 ) { return; } @@ -80,7 +80,8 @@ export class Request extends EventEmitter<{ sessionEmitter.on('network.fetchError', event => { if ( event.context !== this.#browsingContext.id || - event.request.request !== this.id + event.request.request !== this.id || + this.#event.redirectCount !== event.redirectCount ) { return; } @@ -91,7 +92,8 @@ export class Request extends EventEmitter<{ sessionEmitter.on('network.responseCompleted', event => { if ( event.context !== this.#browsingContext.id || - event.request.request !== this.id + event.request.request !== this.id || + this.#event.redirectCount !== event.redirectCount ) { return; }