1
0
Fork 0
mirror of https://github.com/kkapsner/CanvasBlocker synced 2025-07-03 12:06:31 +02:00

separate persistent random numbers for incognito windows

This commit is contained in:
kkapsner 2018-07-28 14:13:14 +02:00
parent 7f1fe0ed1c
commit 9b18631768
6 changed files with 61 additions and 18 deletions

View file

@ -80,7 +80,11 @@
var persistentRnd = Object.create(null);
settings.onloaded(function(){
try {
let storedData = JSON.parse(settings.persistentRndStorage);
let storedData = JSON.parse(
browser.extension.inIncognitoContext?
settings.persistentIncognitoRndStorage:
settings.persistentRndStorage
);
for (var domain in storedData){
var value = storedData[domain];
if (
@ -102,8 +106,10 @@
browser.runtime.onMessage.addListener(function(data){
if (data["canvasBlocker-set-domain-rnd"]){
var {domain, rnd} = data["canvasBlocker-set-domain-rnd"];
persistentRnd[domain] = new Uint8Array(rnd);
var {domain, incognito, rnd} = data["canvasBlocker-set-domain-rnd"];
if (incognito === browser.extension.inIncognitoContext){
persistentRnd[domain] = new Uint8Array(rnd);
}
}
if (data["canvasBlocker-clear-domain-rnd"]){
persistentRnd = Object.create(null);
@ -117,7 +123,11 @@
persistentRnd[domain] = new Uint8Array(128);
window.crypto.getRandomValues(persistentRnd[domain]);
browser.runtime.sendMessage({
"canvasBlocker-new-domain-rnd": {domain, rnd: Array.from(persistentRnd[domain])}
"canvasBlocker-new-domain-rnd": {
domain,
incognito: browser.extension.inIncognitoContext,
rnd: Array.from(persistentRnd[domain])
}
});
}
return persistentRnd[domain];