hasCookieHeader in on-user-script-xhr.js hold the boolean value indicates whether the headers contains Cookie.
However, this variable holds true only if the Cookie is the last property of headers because the hascookieHeader will be overwritten with the new value for each loop.
Solution
In order to solve this problem, we can change the code like this:
let hasCookieHeader = false;
if (d.headers) {
for (let prop in d.headers) {
if (Object.prototype.hasOwnProperty.call(d.headers, prop)) {
let propLower = prop.toLowerCase();
- hasCookieHeader = (propLower === 'cookie');
+ hasCookieHeader ||= (propLower === 'cookie');
if (gHeadersToReplace.includes(propLower)) {
xhr.setRequestHeader(gDummyHeaderPrefix + propLower, d.headers[prop]);
}
else {
xhr.setRequestHeader(prop, d.headers[prop]);
}
}
}
}
hasCookieHeaderinon-user-script-xhr.jshold the boolean value indicates whether theheaderscontainsCookie.However, this variable holds
trueonly if theCookieis the last property of headers because thehascookieHeaderwill be overwritten with the new value for each loop.Solution
In order to solve this problem, we can change the code like this:
let hasCookieHeader = false; if (d.headers) { for (let prop in d.headers) { if (Object.prototype.hasOwnProperty.call(d.headers, prop)) { let propLower = prop.toLowerCase(); - hasCookieHeader = (propLower === 'cookie'); + hasCookieHeader ||= (propLower === 'cookie'); if (gHeadersToReplace.includes(propLower)) { xhr.setRequestHeader(gDummyHeaderPrefix + propLower, d.headers[prop]); } else { xhr.setRequestHeader(prop, d.headers[prop]); } } } }