fix(network): be able to remove headers using request.continue (#4797)
I think this was a regression caused here https://github.com/GoogleChrome/puppeteer/pull/4265/files#diff-d2ac7cb061b0c51644d0a5d6140e3a32R446 Fix #4743
This commit is contained in:
parent
4acce550c4
commit
b9b6ca1825
@ -158,7 +158,7 @@ class Request {
|
|||||||
} = overrides;
|
} = overrides;
|
||||||
await this._session.send('Network.resumeSuspendedRequest', {
|
await this._session.send('Network.resumeSuspendedRequest', {
|
||||||
requestId: this._id,
|
requestId: this._id,
|
||||||
headers: headers ? Object.entries(headers).map(([name, value]) => ({name, value})) : undefined,
|
headers: headers ? Object.entries(headers).filter(([, value]) => !Object.is(value, undefined)).map(([name, value]) => ({name, value})) : undefined,
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
debugError(error);
|
debugError(error);
|
||||||
});
|
});
|
||||||
|
@ -723,8 +723,10 @@ class SecurityDetails {
|
|||||||
*/
|
*/
|
||||||
function headersArray(headers) {
|
function headersArray(headers) {
|
||||||
const result = [];
|
const result = [];
|
||||||
for (const name in headers)
|
for (const name in headers) {
|
||||||
result.push({name, value: headers[name] + ''});
|
if (!Object.is(headers[name], undefined))
|
||||||
|
result.push({name, value: headers[name] + ''});
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -72,6 +72,24 @@ module.exports.addTests = function({testRunner, expect, CHROME}) {
|
|||||||
});
|
});
|
||||||
await page.goto(server.PREFIX + '/rrredirect');
|
await page.goto(server.PREFIX + '/rrredirect');
|
||||||
});
|
});
|
||||||
|
// @see https://github.com/GoogleChrome/puppeteer/issues/4743
|
||||||
|
it('should be able to remove headers', async({page, server}) => {
|
||||||
|
await page.setRequestInterception(true);
|
||||||
|
page.on('request', request => {
|
||||||
|
const headers = Object.assign({}, request.headers(), {
|
||||||
|
foo: 'bar',
|
||||||
|
origin: undefined, // remove "origin" header
|
||||||
|
});
|
||||||
|
request.continue({ headers });
|
||||||
|
});
|
||||||
|
|
||||||
|
const [serverRequest] = await Promise.all([
|
||||||
|
server.waitForRequest('/empty.html'),
|
||||||
|
page.goto(server.PREFIX + '/empty.html')
|
||||||
|
]);
|
||||||
|
|
||||||
|
expect(serverRequest.headers.origin).toBe(undefined);
|
||||||
|
});
|
||||||
it('should contain referer header', async({page, server}) => {
|
it('should contain referer header', async({page, server}) => {
|
||||||
await page.setRequestInterception(true);
|
await page.setRequestInterception(true);
|
||||||
const requests = [];
|
const requests = [];
|
||||||
|
Loading…
Reference in New Issue
Block a user