Skip to content

Commit e495544

Browse files
authored
fix(chromium): continue internal redirects after regular redirects (#39846)
1 parent 1f2d879 commit e495544

File tree

1 file changed

+2
-4
lines changed

1 file changed

+2
-4
lines changed

packages/playwright-core/src/server/chromium/crNetworkManager.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -254,7 +254,7 @@ export class CRNetworkManager {
254254
this._requestIdToRequestWillBeSentEvent.delete(requestId);
255255
} else {
256256
const existingRequest = this._requestIdToRequest.get(requestId);
257-
const alreadyContinuedParams = existingRequest?._route?._alreadyContinuedParams;
257+
const alreadyContinuedParams = existingRequest?._originalRequestRoute?._alreadyContinuedParams;
258258
if (alreadyContinuedParams && !event.redirectedRequestId) {
259259
// Sometimes Chromium network stack restarts the request internally.
260260
// For example, when no-cors request hits a "less public address space", it should be resent with cors.
@@ -385,7 +385,7 @@ export class CRNetworkManager {
385385
return Buffer.from(response.body, response.base64Encoded ? 'base64' : 'utf8');
386386

387387
// Make sure no network requests sent while reading the body for fulfilled requests.
388-
if (request._route?._fulfilled)
388+
if (request._originalRequestRoute?._fulfilled)
389389
return Buffer.from('');
390390

391391
// For <link prefetch we are going to receive empty body with non-empty content-length expectation. Reach out for the actual content.
@@ -567,7 +567,6 @@ class InterceptableRequest {
567567
readonly _documentId: string | undefined;
568568
readonly _timestamp: number;
569569
readonly _wallTime: number;
570-
readonly _route: RouteImpl | null;
571570
// Only first request in the chain can be intercepted, so this will
572571
// store the first and only Route in the chain (if any).
573572
readonly _originalRequestRoute: RouteImpl | undefined;
@@ -592,7 +591,6 @@ class InterceptableRequest {
592591
this._requestId = requestWillBeSentEvent.requestId;
593592
this._interceptionId = requestPausedEvent && requestPausedEvent.requestId;
594593
this._documentId = documentId;
595-
this._route = route;
596594
this._originalRequestRoute = route ?? redirectedFrom?._originalRequestRoute;
597595

598596
const {

0 commit comments

Comments
 (0)