1
0
Fork 0
mirror of https://github.com/kkapsner/CanvasBlocker synced 2025-07-04 20:46:39 +02:00

Made data URL protection url specific

Fixes #333
This commit is contained in:
kkapsner 2019-04-19 13:58:04 +02:00
parent 59f8e38722
commit b7a8a51a56
5 changed files with 25 additions and 4 deletions

View file

@ -14,6 +14,7 @@
const logging = require("./logging");
const settings = require("./settings");
const settingContainer = require("./settingContainers");
let canMergeHeader = false;
let blockBlob = true;
browser.runtime.getBrowserInfo().then(function(info){
@ -42,7 +43,7 @@
scope.init = function(){
function listener(details){
const headers = details.responseHeaders;
if (settings.blockDataURLs){
if (settings.get("blockDataURLs", new URL(details.url))){
const cspMatch = (blockBlob? "": "blob: ") + "filesystem: *";
logging.verbose("Adding CSP header to", details);
setHeader(headers, {
@ -57,6 +58,7 @@
}
function addListener(){
if (!browser.webRequest.onHeadersReceived.hasListener(listener)){
logging.message("add listener for CSP headers (data URL protection)");
browser.webRequest.onHeadersReceived.addListener(
listener,
{
@ -68,10 +70,18 @@
}
}
function removeListener(){
browser.webRequest.onHeadersReceived.removeListener(listener);
if (browser.webRequest.onHeadersReceived.hasListener(listener)){
logging.message("remove listener for CSP headers (data URL protection)");
browser.webRequest.onHeadersReceived.removeListener(listener);
}
}
function adjustListener(){
if (settings.blockDataURLs){
if (
settings.blockDataURLs ||
settingContainer.urlContainer.get().some(function(entry){
return entry.blockDataURLs;
})
){
addListener();
}
else {
@ -81,6 +91,7 @@
settings.onloaded(adjustListener);
settings.on("blockDataURLs", adjustListener);
settingContainer.urlContainer.on(adjustListener);
};
}());

View file

@ -304,7 +304,8 @@
},
{
name: "blockDataURLs",
defaultValue: true
defaultValue: true,
urlSpecific: true
},
{
name: "protectNavigator",