From 99fd5b6e3c0efb6951c0f8999480ad9d913bf790 Mon Sep 17 00:00:00 2001 From: Dmitry Gozman Date: Tue, 3 Mar 2026 21:51:21 +0000 Subject: [PATCH] chore: follow up for httpVersion() Fixes stalling har tracer and httpVersion for redirects. Covered by existing failing tests. --- packages/playwright-core/src/server/har/harTracer.ts | 10 +++++----- packages/playwright-core/src/server/webkit/wkPage.ts | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/playwright-core/src/server/har/harTracer.ts b/packages/playwright-core/src/server/har/harTracer.ts index dc6399abf7fe3..bf23b3dc26d43 100644 --- a/packages/playwright-core/src/server/har/harTracer.ts +++ b/packages/playwright-core/src/server/har/harTracer.ts @@ -362,6 +362,11 @@ export class HarTracer { }); this._addBarrier(page || request.serviceWorker(), promise); + this._addBarrier(page || request.serviceWorker(), response.httpVersion().then(httpVersion => { + harEntry.request.httpVersion = httpVersion; + harEntry.response.httpVersion = httpVersion; + })); + // Response end timing is only available after the response event was received. const timing = response.timing(); harEntry.timings.receive = response.request()._responseEndTiming !== -1 ? helper.millisToRoundishMillis(response.request()._responseEndTiming - timing.responseStart) : -1; @@ -462,11 +467,6 @@ export class HarTracer { _transferSize: this._options.omitSizes ? undefined : -1 }; - this._addBarrier(page || request.serviceWorker(), response.httpVersion().then(httpVersion => { - harEntry.request.httpVersion = httpVersion; - harEntry.response.httpVersion = httpVersion; - })); - if (!this._options.omitTiming) { const startDateTime = pageEntry ? ((pageEntry as any)[startedDateSymbol] as Date).valueOf() : 0; const timing = response.timing(); diff --git a/packages/playwright-core/src/server/webkit/wkPage.ts b/packages/playwright-core/src/server/webkit/wkPage.ts index 4751ae522babe..9eb7695498180 100644 --- a/packages/playwright-core/src/server/webkit/wkPage.ts +++ b/packages/playwright-core/src/server/webkit/wkPage.ts @@ -1094,6 +1094,7 @@ export class WKPage implements PageDelegate { private _handleRequestRedirect(request: WKInterceptableRequest, requestId: string, responsePayload: Protocol.Network.Response, timestamp: number) { const response = request.createResponse(responsePayload); + response._setHttpVersion(null); response._securityDetailsFinished(); response._serverAddrFinished(); response.setResponseHeadersSize(null);