fix: resend overridden headers on redirect without merging (#29605)

Reference https://github.com/microsoft/playwright/issues/13106
This commit is contained in:
Yury Semikhatsky 2024-02-22 07:44:14 -08:00 committed by GitHub
parent e846afeb98
commit 5ca8e17a2d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -287,11 +287,8 @@ export class CRNetworkManager {
if (requestPausedEvent) {
// We do not support intercepting redirects.
if (redirectedFrom || (!this._userRequestInterceptionEnabled && this._protocolRequestInterceptionEnabled)) {
let headers = undefined;
const previousHeaderOverrides = redirectedFrom?._originalRequestRoute?._alreadyContinuedParams?.headers;
// Chromium does not preserve header overrides between redirects, so we have to do it ourselves.
if (previousHeaderOverrides)
headers = network.mergeHeaders([headersObjectToArray(requestPausedEvent.request.headers, '\n'), previousHeaderOverrides]);
const headers = redirectedFrom?._originalRequestRoute?._alreadyContinuedParams?.headers;
this._session._sendMayFail('Fetch.continueRequest', { requestId: requestPausedEvent.requestId, headers });
} else {
route = new RouteImpl(this._session, requestPausedEvent.requestId);