Files
I2P_in_Private_Browsing_Mod…/scrub.js

57 lines
1.7 KiB
JavaScript
Raw Normal View History

var contextScrub = async function(requestDetails) {
2019-10-06 15:18:10 -04:00
console.log("(scrub)Scrubbing info from contextualized request");
try {
var headerScrub = function(context) {
if (!context) {
console.error("Context not found");
} else {
if ((context.name = "i2pbrowser")) {
var ua = "MYOB/6.66 (AN/ON)";
for (var header of requestDetails.requestHeaders) {
if (header.name.toLowerCase() === "user-agent") {
header.value = ua;
console.log("(scrub)User-Agent header modified", header.value);
}
2019-10-06 15:18:10 -04:00
}
return {
requestHeaders: requestDetails.requestHeaders
};
}
2019-10-06 15:18:10 -04:00
}
};
var contextGet = async function(tabInfo) {
try {
console.log("(scrub)Tab info from Function", tabInfo);
context = await browser.contextualIdentities.get(tabInfo.cookieStoreId);
return context;
} catch (error) {
console.log("(scrub)Conext Error", error);
}
};
var tabGet = async function(tabId) {
try {
console.log("(scrub)Tab ID from Request", tabId);
let tabInfo = await browser.tabs.get(tabId);
return tabInfo;
} catch (error) {
console.log("(scrub)Tab error", error);
}
};
if (requestDetails.tabId > 0) {
var tab = tabGet(requestDetails.tabId);
var context = tab.then(contextGet);
var req = await context.then(headerScrub);
console.log("(scrub)Returning I2P Proxy", req);
return req;
}
2019-10-06 15:18:10 -04:00
} catch (error) {
console.log("(scrub)Not using I2P Proxy.", error);
}
};
browser.webRequest.onBeforeSendHeaders.addListener(
2019-10-06 15:18:10 -04:00
contextScrub,
{ urls: ["<all_urls>"] },
["blocking", "requestHeaders"]
);