1
0
mirror of https://github.com/kkapsner/CanvasBlocker synced 2025-05-25 09:13:27 +02:00

Only use onHeadersReceived listener when necessary

As mentioned in #214
This commit is contained in:
kkapsner 2018-08-28 21:09:03 +02:00
parent d020c55e11
commit bde8ac3e8e
2 changed files with 42 additions and 23 deletions

View File

@ -41,28 +41,47 @@
} }
scope.init = function(){ scope.init = function(){
browser.webRequest.onHeadersReceived.addListener( function listener(details){console.log("listener");
function(details){ const headers = details.responseHeaders;
if (settings.blockDataURLs){
const cspMatch = (blockBlob? "": "blob: ") + "filesystem: *"; const cspMatch = (blockBlob? "": "blob: ") + "filesystem: *";
const headers = details.responseHeaders; logging.verbose("Adding CSP header to", details);
if (settings.blockDataURLs){ setHeader(headers, {
logging.verbose("Adding CSP header to", details); name: "Content-Security-Policy",
setHeader(headers, { value: `object-src ${cspMatch}; frame-src ${cspMatch}`
name: "Content-Security-Policy", // + "; report-to https://canvasblocker.invalid/; report-uri https://canvasblocker.invalid/"
value: `object-src ${cspMatch}; frame-src ${cspMatch}` });
// + "; report-to https://canvasblocker.invalid/; report-uri https://canvasblocker.invalid/" }
}); return {
} responseHeaders: headers
return { };
responseHeaders: headers }
}; function addListener(){
}, if (!browser.webRequest.onHeadersReceived.hasListener(listener)){
{ browser.webRequest.onHeadersReceived.addListener(
urls: ["<all_urls>"], listener,
types: ["main_frame", "sub_frame", "object"] {
}, urls: ["<all_urls>"],
["blocking", "responseHeaders"] types: ["main_frame", "sub_frame", "object"]
); },
["blocking", "responseHeaders"]
);
}
}
function removeListener(){
browser.webRequest.onHeadersReceived.removeListener(listener);
}
function adjustListener(){
if (settings.blockDataURLs){
addListener();
}
else {
removeListener();
}
}
settings.onloaded(adjustListener);
settings.on("blockDataURLs", adjustListener);
}; };
}()); }());

View File

@ -29,7 +29,7 @@
<iframe id="blobIframe"></iframe> <iframe id="blobIframe"></iframe>
<h1>Data-URL object</h1> <h1>Data-URL object</h1>
<object <object
type="invalid" type="text/html"
data="data:invalid;base64&#x2c;<?php data="data:invalid;base64&#x2c;<?php
echo base64_encode( echo base64_encode(
str_replace( str_replace(
@ -42,7 +42,7 @@
></object> ></object>
<h1>Data-URL embed</h1> <h1>Data-URL embed</h1>
<embed <embed
type="invalid" type="text/html"
src="data:invalid;base64&#x2c;<?php src="data:invalid;base64&#x2c;<?php
echo base64_encode( echo base64_encode(
str_replace( str_replace(