prevent injecting wallet detection on unwanted pages

This commit is contained in:
Florian Dold 2016-11-20 08:47:22 +01:00
parent 3f3ae0634d
commit c54a900cdd

View File

@ -463,11 +463,31 @@ export function wxMain() {
}
});
const tabTimers: {[n: number]: number[]} = {};
chrome.tabs.onRemoved.addListener((tabId, changeInfo) => {
let tt = tabTimers[tabId] || [];
for (let t of tt) {
chrome.extension.getBackgroundPage().clearTimeout(t);
}
});
chrome.tabs.onUpdated.addListener((tabId, changeInfo) => {
if (changeInfo.status != 'complete') {
return;
}
const timers: number[] = [];
const addRun = (dt: number) => {
const id = chrome.extension.getBackgroundPage().setTimeout(run, dt);
timers.push(id);
}
const run = () => {
timers.shift();
chrome.tabs.get(tabId, (tab) => {
if (chrome.runtime.lastError) {
return;
}
if (!tab.url || !tab.id) {
return;
}
@ -480,18 +500,19 @@ export function wxMain() {
document.dispatchEvent(new Event("taler-probe-result"));
}
`;
let run = () => {
chrome.tabs.executeScript(tab.id!, { code, runAt: "document_start" });
};
run();
chrome.extension.getBackgroundPage().setTimeout(run, 50);
chrome.extension.getBackgroundPage().setTimeout(run, 300);
chrome.extension.getBackgroundPage().setTimeout(run, 2000);
chrome.extension.getBackgroundPage().setTimeout(run, 4000);
chrome.extension.getBackgroundPage().setTimeout(run, 8000);
chrome.extension.getBackgroundPage().setTimeout(run, 16000);
});
};
addRun(0);
addRun(50);
addRun(300);
addRun(1000);
addRun(2000);
addRun(4000);
addRun(8000);
addRun(16000);
tabTimers[tabId] = timers;
});
chrome.extension.getBackgroundPage().setInterval(clearRateLimitCache, 5000);