aboutsummaryrefslogtreecommitdiffstats
path: root/src/setwhitelist.js
diff options
context:
space:
mode:
authornullius <nullius@nym.zone>2017-12-30 21:55:46 +0000
committernullius <nullius@nym.zone>2017-12-30 21:55:46 +0000
commitce7503453cb41fd0471fad664e8c3b0dd80ce002 (patch)
treef84a033b1890c6f56196ff5125e70f6c180413ba /src/setwhitelist.js
parent9c4cd9c9841567fdf68919da245f9587bbab78c6 (diff)
downloadcloudflare-tor-ce7503453cb41fd0471fad664e8c3b0dd80ce002.tar.lz
cloudflare-tor-ce7503453cb41fd0471fad664e8c3b0dd80ce002.tar.xz
cloudflare-tor-ce7503453cb41fd0471fad664e8c3b0dd80ce002.zip
Import v1.0.7.1 from a.m.o.
This is a huge jump. Sorry, I will not manually import all intermediary versions to track development. Significant changes: - Major feature: Now works with Firefox 52 / current Tor Browser. Closes #2. - Major feature: Error page. Closes #3. - Major feature: Whitelist. Closes #4. - Regression: Indentation/style is busted. Reopens #1.
Diffstat (limited to 'src/setwhitelist.js')
-rw-r--r--src/setwhitelist.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/src/setwhitelist.js b/src/setwhitelist.js
new file mode 100644
index 00000000..5d009b41
--- /dev/null
+++ b/src/setwhitelist.js
@@ -0,0 +1,44 @@
+function saveWhitelist(e) {
+e.preventDefault();
+//WHITELIST
+// check each line and remove bad fqdn (simple check)
+var cf_tmpdata=document.querySelector("#myset_cfwhite").value.split("\n");
+for (var i=0;i<cf_tmpdata.length;i++){
+if (!/^([0-9a-z.-]{1,})\.([a-z]{2,20})$/.test(cf_tmpdata[i])||cf_tmpdata[i].startsWith(".")||cf_tmpdata[i].includes("..")||
+cf_tmpdata[i].endsWith(".cloudflare.com")||cf_tmpdata[i]=='cloudflare.com'||
+cf_tmpdata[i].endsWith(".incapsula.com")||cf_tmpdata[i]=='incapsula.com'||
+cf_tmpdata[i].endsWith(".withgoogle.com")||cf_tmpdata[i].endsWith(".google.com")){cf_tmpdata[i]='';}
+}
+cf_tmpdata=cf_tmpdata.slice().sort(function(a,b){return a>b}).reduce(function(a,b){if (a.slice(-1)[0]!==b){a.push(b);};return a;},[]);// -duplicate
+cf_tmpdata=cf_tmpdata.filter(v=>v!='');// -empty
+cf_tmpdata=cf_tmpdata.join("\n");
+browser.storage.local.set({myset_cfwhite: cf_tmpdata});
+document.querySelector("#myset_cfwhite").value=cf_tmpdata;
+//workaround - simplewarn didn't work as expected if igncj is active
+if (document.querySelector("#myset_xsimplewarn").checked){document.querySelector("#myset_xigncj").checked=false;}
+//ADVANCED
+if (document.querySelector("#myset_xincapsula").checked){browser.storage.local.set({myset_xincapsula: "y"});}else{browser.storage.local.set({myset_xincapsula: "n"});}
+if (document.querySelector("#myset_xgshield").checked){browser.storage.local.set({myset_xgshield: "y"});}else{browser.storage.local.set({myset_xgshield: "n"});}
+if (document.querySelector("#myset_xsucuri").checked){browser.storage.local.set({myset_xsucuri: "y"});}else{browser.storage.local.set({myset_xsucuri: "n"});}
+if (document.querySelector("#myset_xignhttp").checked){browser.storage.local.set({myset_xignhttp: "y"});}else{browser.storage.local.set({myset_xignhttp: "n"});}
+if (document.querySelector("#myset_xigncj").checked){browser.storage.local.set({myset_xigncj: "y"});}else{browser.storage.local.set({myset_xigncj: "n"});}
+if (document.querySelector("#myset_xsimplewarn").checked){browser.storage.local.set({myset_xsimplewarn: "y"});}else{browser.storage.local.set({myset_xsimplewarn: "n"});}
+}
+function loadWhitelist(){
+function setCurrentChoice(r){
+//WHITELIST
+document.querySelector("#myset_cfwhite").value = r.myset_cfwhite||"";
+//ADVANCED
+if (r.myset_xincapsula=='y'){document.querySelector("#myset_xincapsula").checked=true;}else{document.querySelector("#myset_xincapsula").checked=false;}
+if (r.myset_xgshield=='y'){document.querySelector("#myset_xgshield").checked=true;}else{document.querySelector("#myset_xgshield").checked=false;}
+if (r.myset_xsucuri=='y'){document.querySelector("#myset_xsucuri").checked=true;}else{document.querySelector("#myset_xsucuri").checked=false;}
+if (r.myset_xignhttp=='y'){document.querySelector("#myset_xignhttp").checked=true;}else{document.querySelector("#myset_xignhttp").checked=false;}
+if (r.myset_xigncj=='y'){document.querySelector("#myset_xigncj").checked=true;}else{document.querySelector("#myset_xigncj").checked=false;}
+if (r.myset_xsimplewarn=='y'){document.querySelector("#myset_xsimplewarn").checked=true;}else{document.querySelector("#myset_xsimplewarn").checked=false;}
+}
+function onError(e){console.log(`CFMITM_CFG Error:${e}`);}
+var getting=browser.storage.local.get();
+getting.then(setCurrentChoice, onError);
+}
+document.addEventListener("DOMContentLoaded", loadWhitelist);
+document.querySelector("form").addEventListener("submit", saveWhitelist); \ No newline at end of file