mirror of
https://github.com/puppeteer/puppeteer
synced 2024-06-14 14:02:48 +00:00
fix(network): relax request matching heuristic (#3775)
Drop requirement for matching "origin" and "content-type" headers in requests and request interceptions. This way javascript redirects that use form submission start working. Fix #3684.
This commit is contained in:
parent
e8bb26eb95
commit
04fbbd7cf0
@ -651,6 +651,8 @@ class Response {
|
|||||||
}
|
}
|
||||||
helper.tracePublicAPI(Response);
|
helper.tracePublicAPI(Response);
|
||||||
|
|
||||||
|
const IGNORED_HEADERS = new Set(['accept', 'referer', 'x-devtools-emulate-network-conditions-client-id', 'cookie', 'origin', 'content-type']);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param {!Protocol.Network.Request} request
|
* @param {!Protocol.Network.Request} request
|
||||||
* @return {string}
|
* @return {string}
|
||||||
@ -677,7 +679,7 @@ function generateRequestHash(request) {
|
|||||||
for (let header of headers) {
|
for (let header of headers) {
|
||||||
const headerValue = request.headers[header];
|
const headerValue = request.headers[header];
|
||||||
header = header.toLowerCase();
|
header = header.toLowerCase();
|
||||||
if (header === 'accept' || header === 'referer' || header === 'x-devtools-emulate-network-conditions-client-id' || header === 'cookie')
|
if (IGNORED_HEADERS.has(header))
|
||||||
continue;
|
continue;
|
||||||
hash.headers[header] = headerValue;
|
hash.headers[header] = headerValue;
|
||||||
}
|
}
|
||||||
|
@ -266,7 +266,7 @@ module.exports.addTests = function({testRunner, expect}) {
|
|||||||
expect(response.ok()).toBe(true);
|
expect(response.ok()).toBe(true);
|
||||||
expect(response.remoteAddress().port).toBe(server.PORT);
|
expect(response.remoteAddress().port).toBe(server.PORT);
|
||||||
});
|
});
|
||||||
xit('should work when POST is redirected with 302', async({page, server}) => {
|
it('should work when POST is redirected with 302', async({page, server}) => {
|
||||||
server.setRedirect('/rredirect', '/empty.html');
|
server.setRedirect('/rredirect', '/empty.html');
|
||||||
await page.goto(server.EMPTY_PAGE);
|
await page.goto(server.EMPTY_PAGE);
|
||||||
await page.setRequestInterception(true);
|
await page.setRequestInterception(true);
|
||||||
|
Loading…
Reference in New Issue
Block a user