blob: 9941f0c85c478ec192df7a0892431144bd5056e4 [file] [log] [blame]
(async function(testRunner) {
var {page, session, dp} = await testRunner.startBlank(
`Tests the overriden referer headers are properly reported and applied with interception`);
session.protocol.Network.enable();
session.protocol.Page.enable();
await dp.Network.setExtraHTTPHeaders({headers: {'ReFeReR': 'https://127.0.0.1:8000/'}});
await session.protocol.Network.setRequestInterception({patterns: [{urlPattern: "*"}]});
testRunner.log('*Not* overriding referer in interception handler:');
var {interceptionId, bodyPromise} = await sendRequestAndIntercept();
session.protocol.Network.continueInterceptedRequest({interceptionId: interceptionId});
testRunner.log(`response: ${await bodyPromise}`);
testRunner.log('Overriding referer in interception handler:');
var {interceptionId, bodyPromise} = await sendRequestAndIntercept();
session.protocol.Network.continueInterceptedRequest({interceptionId: interceptionId, headers: {'ReFeReR': 'http://localhost:8000/'}});
testRunner.log(`response: ${await bodyPromise}`);
testRunner.completeTest();
async function sendRequestAndIntercept() {
const requestPromise = session.protocol.Network.onceRequestWillBeSent();
const evalPromise = session.evaluateAsync(`(async function() {
var url = '${testRunner.url('./resources/echo-headers.php?headers=HTTP_REFERER')}';
var response = await fetch(new Request(url));
return response.text();
})()`);
const interceptedRequest = (await session.protocol.Network.onceRequestIntercepted()).params;
const request = (await requestPromise).params;
testRunner.log(`referer in requestWillBeSent: ${request.request.headers['Referer']}`);
testRunner.log(`referer in requestIntercepted: ${interceptedRequest.request.headers['Referer']}`);
return {interceptionId: interceptedRequest.interceptionId, bodyPromise: evalPromise};
}
})