Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,9 @@ const disabledFeatures = [
'PaintHolding',
// See https://github.com/microsoft/playwright/issues/32230
'ThirdPartyStoragePartitioning',
// Chromium 149 rejects re-applying the `origin` header on a redirect (as request interception
// does) with net::ERR_INVALID_ARGUMENT. See https://github.com/microsoft/playwright/issues/41690
'BlockOriginHeaderModificationOnRedirect',
// See https://github.com/microsoft/playwright/issues/16126
'Translate',
// See https://issues.chromium.org/u/1/issues/435410220
Expand Down
29 changes: 29 additions & 0 deletions tests/page/page-request-continue.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -872,6 +872,35 @@ it('propagate headers cross origin redirect after interception', {
expect.soft(serverRequest.headers['custom']).toBe('foo');
});

it('continue should pass on 307 cross-origin redirect', {
annotation: { type: 'issue', description: 'https://github.com/microsoft/playwright/issues/41690' }
}, async ({ page, server, isAndroid }) => {
it.skip(isAndroid, 'No cross-process on Android');

server.setRoute('/final', (request, response) => {
response.writeHead(200, { 'content-type': 'text/html' });
response.end('<!doctype html><title>final</title><p>ok</p>');
});
// Cross-origin 307 redirect that preserves the POST method.
server.setRoute('/redirect307', (request, response) => {
response.writeHead(307, { location: `${server.PREFIX}/final` });
response.end();
});

await page.goto(server.PREFIX + '/empty.html');
await page.setContent(`
<form id="f" method="POST" action="${server.CROSS_PROCESS_PREFIX}/redirect307">
<input type="submit">
</form>`);

await page.route('**/*', route => route.continue());
await Promise.all([
page.waitForURL(`${server.PREFIX}/final`),
page.locator('input').click(),
]);
await expect(page.locator('p')).toHaveText('ok');
});

it('should intercept css variable with background url', async ({ page, server }) => {
it.info().annotations.push({ type: 'issue', description: 'https://github.com/microsoft/playwright/issues/19158' });

Expand Down
Loading