Merge pull request #10869 from Rob--W/issue-10645-preserve-http-referer-again
Restore referrer preserving functionality in Chrome 72+
This commit is contained in:
commit
5adb32371e
@ -41,14 +41,26 @@ var g_requestHeaders = {};
|
|||||||
// g_referrers[tabId][frameId] = referrer of PDF frame.
|
// g_referrers[tabId][frameId] = referrer of PDF frame.
|
||||||
var g_referrers = {};
|
var g_referrers = {};
|
||||||
|
|
||||||
|
var extraInfoSpecWithHeaders; // = ['requestHeaders', 'extraHeaders']
|
||||||
|
|
||||||
(function() {
|
(function() {
|
||||||
var requestFilter = {
|
var requestFilter = {
|
||||||
urls: ['*://*/*'],
|
urls: ['*://*/*'],
|
||||||
types: ['main_frame', 'sub_frame'],
|
types: ['main_frame', 'sub_frame'],
|
||||||
};
|
};
|
||||||
|
function registerListener(extraInfoSpec) {
|
||||||
|
extraInfoSpecWithHeaders = extraInfoSpec;
|
||||||
|
// May throw if the given extraInfoSpec is unsupported.
|
||||||
chrome.webRequest.onSendHeaders.addListener(function(details) {
|
chrome.webRequest.onSendHeaders.addListener(function(details) {
|
||||||
g_requestHeaders[details.requestId] = details.requestHeaders;
|
g_requestHeaders[details.requestId] = details.requestHeaders;
|
||||||
}, requestFilter, ['requestHeaders']);
|
}, requestFilter, extraInfoSpec);
|
||||||
|
}
|
||||||
|
try {
|
||||||
|
registerListener(['requestHeaders', 'extraHeaders']);
|
||||||
|
} catch (e) {
|
||||||
|
// "extraHeaders" is not supported in Chrome 71 and earlier.
|
||||||
|
registerListener(['requestHeaders']);
|
||||||
|
}
|
||||||
chrome.webRequest.onBeforeRedirect.addListener(forgetHeaders, requestFilter);
|
chrome.webRequest.onBeforeRedirect.addListener(forgetHeaders, requestFilter);
|
||||||
chrome.webRequest.onCompleted.addListener(forgetHeaders, requestFilter);
|
chrome.webRequest.onCompleted.addListener(forgetHeaders, requestFilter);
|
||||||
chrome.webRequest.onErrorOccurred.addListener(forgetHeaders, requestFilter);
|
chrome.webRequest.onErrorOccurred.addListener(forgetHeaders, requestFilter);
|
||||||
@ -105,7 +117,7 @@ chrome.runtime.onConnect.addListener(function onReceivePort(port) {
|
|||||||
urls: [data.requestUrl],
|
urls: [data.requestUrl],
|
||||||
types: ['xmlhttprequest'],
|
types: ['xmlhttprequest'],
|
||||||
tabId: tabId,
|
tabId: tabId,
|
||||||
}, ['blocking', 'requestHeaders']);
|
}, ['blocking', ...extraInfoSpecWithHeaders]);
|
||||||
}
|
}
|
||||||
// Acknowledge the message, and include the latest referer for this frame.
|
// Acknowledge the message, and include the latest referer for this frame.
|
||||||
port.postMessage(referer);
|
port.postMessage(referer);
|
||||||
|
Loading…
Reference in New Issue
Block a user