From 58799cb550830ce74550da0991c9fb8246f15534 Mon Sep 17 00:00:00 2001 From: Thomas Rientjes <synzvato@protonmail.com> Date: Fri, 4 Dec 2015 08:26:58 +0100 Subject: [PATCH] Improve preference screen --- lib/interceptor.js | 6 ++++++ lib/request-analyzer.js | 14 ++++++++++++++ package.json | 16 +++++++++++++++- 3 files changed, 35 insertions(+), 1 deletion(-) diff --git a/lib/interceptor.js b/lib/interceptor.js index f3e8c1c..0a3c260 100644 --- a/lib/interceptor.js +++ b/lib/interceptor.js @@ -82,6 +82,9 @@ var Interceptor = new Class({ } httpChannel.redirectTo(redirectionURI); + + //noinspection JSUnresolvedVariable + require('sdk/simple-prefs').prefs.amountBlocked++; }, handleMissingCandidate: function (httpChannel) { @@ -91,6 +94,9 @@ var Interceptor = new Class({ if (blockMissing) { httpChannel.cancel(Cr.NS_ERROR_NOT_AVAILABLE); + + //noinspection JSUnresolvedVariable + require('sdk/simple-prefs').prefs.amountBlocked++; } } }); diff --git a/lib/request-analyzer.js b/lib/request-analyzer.js index 74dc19c..b01e0ac 100644 --- a/lib/request-analyzer.js +++ b/lib/request-analyzer.js @@ -33,6 +33,20 @@ function isValidCandidate(httpChannel) { return false; } + //noinspection JSUnresolvedVariable + var whitelistedDomains = require('sdk/simple-prefs').prefs.domainWhitelist.split(";"); + + for (var domain in whitelistedDomains) { + + if (whitelistedDomains[domain] === httpChannel.referrer.host) { + + // Remove referer header from request. + httpChannel.setRequestHeader('Referer', null, false); + + return false; + } + } + return httpChannel.requestMethod === 'GET'; } diff --git a/package.json b/package.json index ce3ad3f..604688c 100644 --- a/package.json +++ b/package.json @@ -21,11 +21,25 @@ "title": "Add comments to locally fetched files" }, { - "description": "Cancel the intercepted request if the required resource is not locally available.", + "description": "Cancel intercepted request if the required resource is not locally available.", "type": "bool", "name": "blockMissing", "value": false, "title": "Block requests for missing resources" + }, + { + "description": "Enter domains to whitelist them. Separate multipe entries with semi-colons (;).", + "type": "string", + "name": "domainWhitelist", + "value": "", + "title": "Exclude domains from inspections" + }, + { + "description": "Amount of requests to Content Delivery Networks blocked since installation.", + "type": "integer", + "name": "amountBlocked", + "value": 0, + "title": "Counter for intercepted requests" } ] } -- GitLab