diff --git a/background.js b/background.js index 0dfcc20..4d9e68a 100644 --- a/background.js +++ b/background.js @@ -26,8 +26,16 @@ function detectFeed(event) { event.responseHeaders.splice(i, 1); } else if (event.responseHeaders[i].name.toLowerCase() == 'content-security-policy') { - if (enableCss) - event.responseHeaders[i].value = patchCSP(event.responseHeaders[i].value); + + try { + let options = JSON.parse(localStorage.getItem('options')); + + if (options.enableCss && options.bypassCSP) + event.responseHeaders[i].value = patchCSP(event.responseHeaders[i].value); + } + catch(e) { + console.log(e); + } } } @@ -40,13 +48,11 @@ function detectFeed(event) { } return { responseHeaders: event.responseHeaders }; + + } const browser = window.browser || window.chrome; -let enableCss = false; -browser.storage.sync.get({enableCss: false}).then(function(options) { - enableCss = options.enableCss; -}) browser.webRequest.onHeadersReceived.addListener( detectFeed, diff --git a/rsspreview.js b/rsspreview.js index 74d3882..c397485 100644 --- a/rsspreview.js +++ b/rsspreview.js @@ -21,6 +21,7 @@ fullPreview: false, doAuthor: false, enableCss: false, + bypassCSP: false, customCss: null, newTab: true }; diff --git a/settings/options.html b/settings/options.html index 0078513..d6f4b82 100644 --- a/settings/options.html +++ b/settings/options.html @@ -30,6 +30,7 @@
+
diff --git a/settings/options.js b/settings/options.js index 4441d39..3b8cb88 100644 --- a/settings/options.js +++ b/settings/options.js @@ -2,7 +2,7 @@ function saveOptions(e) { e.preventDefault(); - browser.storage.sync.set({ + let options = { doThumb: document.querySelector("#doThumb").checked, doMaxWidth: document.querySelector("#doMaxWidth").checked, valMaxWidth: document.querySelector("#valMaxWidth").value, @@ -12,9 +12,14 @@ function saveOptions(e) { doAuthor: document.querySelector("#doAuthor").checked, orangeIcon: document.querySelector("#orangeIcon").checked, enableCss: document.querySelector("#enableCss").checked, + bypassCSP: document.querySelector("#bypassCSP").checked, customCss: document.querySelector("#customCss").value, newTab: document.querySelector("#newTab").checked - }); + }; + + browser.storage.sync.set(options); + localStorage.setItem('options', JSON.stringify(options)); + } @@ -30,8 +35,11 @@ function restoreOptions() { document.querySelector("#doAuthor").checked = result.doAuthor; document.querySelector("#orangeIcon").checked = result.orangeIcon; document.querySelector("#enableCss").checked = result.enableCss; + document.querySelector("#bypassCSP").checked = result.bypassCSP; document.querySelector("#customCss").value = result.customCss; document.querySelector("#newTab").checked = result.newTab; + + localStorage.setItem('options', JSON.stringify(result)); } function onError(error) { @@ -48,6 +56,7 @@ function restoreOptions() { doAuthor: false, orangeIcon: false, enableCss: false, + bypassCSP: false, customCss: null, newTab: true });