From 284c1e212557ffd78926b6e4c3ff8423c7f51c35 Mon Sep 17 00:00:00 2001 From: Thomas Rientjes <synzvato@protonmail.com> Date: Mon, 7 Dec 2015 02:43:54 +0100 Subject: [PATCH] Improve preferences system --- lib/interceptor.js | 8 ++++---- lib/request-analyzer.js | 21 +++++++++++++++------ 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/lib/interceptor.js b/lib/interceptor.js index 4c01995..89f669d 100644 --- a/lib/interceptor.js +++ b/lib/interceptor.js @@ -25,6 +25,8 @@ var { Cc, Ci, Cr } = require('chrome'); var observerService = Cc['@mozilla.org/observer-service;1'] .getService(Ci.nsIObserverService); +var preferences = require('sdk/simple-prefs').prefs; + var requestAnalyzer = require('./request-analyzer'); var dataHandler = require('./data-handler'); @@ -84,15 +86,13 @@ var Interceptor = new Class({ httpChannel.redirectTo(redirectionURI); //noinspection JSUnresolvedVariable - require('sdk/simple-prefs').prefs.amountInjected++; + preferences.amountInjected++; }, handleMissingCandidate: function (httpChannel) { //noinspection JSUnresolvedVariable - var blockMissing = require('sdk/simple-prefs').prefs.blockMissing; - - if (blockMissing) { + if (preferences.blockMissing) { httpChannel.cancel(Cr.NS_ERROR_NOT_AVAILABLE); } } diff --git a/lib/request-analyzer.js b/lib/request-analyzer.js index 15616e7..2120b21 100644 --- a/lib/request-analyzer.js +++ b/lib/request-analyzer.js @@ -17,6 +17,8 @@ * Imports */ +var preferences = require('sdk/simple-prefs').prefs; + /** * Resource version mappings. * @var {object} mappings @@ -34,18 +36,25 @@ function isValidCandidate(httpChannel) { } //noinspection JSUnresolvedVariable - var whitelistedDomains = require('sdk/simple-prefs').prefs.domainWhitelist.split(";"); + var domainWhitelist = preferences.domainWhitelist; + + if (domainWhitelist.length > 0 && httpChannel.referrer) { - if (httpChannel.referrer) { + var whitelistedDomains = domainWhitelist.split(';'); for (var domain in whitelistedDomains) { - if (whitelistedDomains[domain] === httpChannel.referrer.host) { + if (whitelistedDomains.hasOwnProperty(domain)) { + + if (whitelistedDomains[domain] === httpChannel.referrer.host || + 'www.' + whitelistedDomains[domain] === httpChannel.referrer.host) { + + // Remove referer header from request. + httpChannel.setRequestHeader('Referer', null, false); - // Remove referer header from request. - httpChannel.setRequestHeader('Referer', null, false); + return false; + } - return false; } } } -- GitLab