summaryrefslogtreecommitdiff
path: root/extensions
diff options
context:
space:
mode:
authorportix <none@none>2012-07-30 00:05:49 +0200
committerportix <none@none>2012-07-30 00:05:49 +0200
commitbec517ab82bbd7964d52c9e396f8f009aaaac2c1 (patch)
tree5b4c9d9f93860e72990ffc013befefe5807d1c40 /extensions
parentc757bf0d47e91ee18ff9cb9710fb565f98843fc2 (diff)
downloaddwb-bec517ab82bbd7964d52c9e396f8f009aaaac2c1.zip
requestpolicy: clean up, reduce number of global variables
Diffstat (limited to 'extensions')
-rw-r--r--extensions/requestpolicy109
1 files changed, 53 insertions, 56 deletions
diff --git a/extensions/requestpolicy b/extensions/requestpolicy
index 88597e3c..60ab7b46 100644
--- a/extensions/requestpolicy
+++ b/extensions/requestpolicy
@@ -78,7 +78,6 @@
* */
var me = "requestpolicy";
-var priv = "_requestPolicy" + parseInt(Math.random() * 9999999999, 10);
var defaultConfig = {
whiteList : data.configDir + "/" + data.profile + "/requestpolicy.json",
@@ -99,21 +98,21 @@ var sigs = {
var persistentList = null;
var tmpList = {};
-var regex = {
- empty : /^\s*$/
-};
+var getPrivate = (function() {
+ var priv = "_requestPolicy" + parseInt(Math.random() * 9999999999, 10);
+ return function (wv) {
+ var o = wv[priv];
+ if (o === undefined) {
+ o = { domains : [], blocked : 0 };
+ Object.defineProperty(wv, priv, {
+ value : o,
+ writable : true
+ });
+ }
+ return o;
+ };
+})();
-function getPrivate(wv) {
- var o = wv[priv];
- if (o === undefined) {
- o = { domains : [], blocked : 0 };
- Object.defineProperty(wv, priv, {
- value : o,
- writable : true
- });
- }
- return o;
-}
function listAdd(o, key, value, doWrite) {
if (!o[key])
o[key] = [];
@@ -242,8 +241,8 @@ function showMenu() {
});
tabComplete("Requestpolicy:", labels, function (response) {
- var l;
- for (var i=0; i<labels.length; i++) {
+ var i, l, len;
+ for (i=0, len = labels.length; i<len; ++i) {
l = labels[i];
if (l.left == response) {
l.action();
@@ -261,11 +260,9 @@ function unblockCurrent() {
//var domains = persistentList._alwaysBlock;
var labels = [], i, l;
for (i=0, l = domains.length; i<l; i++) {
- (function(dom) {
- if (strIndexOf(persistentList._alwaysBlock, dom) != -1) {
- labels.push({ left : dom });
- }
- })(domains[i]);
+ if (strIndexOf(persistentList._alwaysBlock, domains[i]) != -1) {
+ labels.push({ left : domains[i] });
+ }
}
if (labels.length > 0) {
tabComplete("Unblock:", labels, function(response) {
@@ -286,9 +283,7 @@ function unblockAll() {
var i, l, labels = [];
var domains = persistentList._alwaysBlock;
for (i=0, l=domains.length; i<l; ++i) {
- (function (dom) {
- labels.push({ left : dom });
- })(domains[i]);
+ labels.push({ left : domains[i] });
}
if (labels.length > 0) {
tabComplete("Unblock:", labels, function(response) {
@@ -306,41 +301,43 @@ function blockRequest(wv, request, priv, domain) {
return true;
}
// SIGNALS {{{
-function resourceCB(wv, frame, request, response) {
- var o, message, domain, firstParty;
- if (regex.empty.test(request.uri))
- return false;
- message = request.message;
- if (!message)
- return false;
- firstParty = util.domainFromHost(message.firstParty.host);
- domain = util.domainFromHost(message.uri.host);
- if (firstParty == domain)
- return false;
- o = getPrivate(wv);
- if (strIndexOf(o.domains, domain) == -1) {
- o.domains.push(domain);
- }
+var resourceCB = (function () {
+ var regexEmpty = /^\s*$/;
+ return function resourceCB(wv, frame, request, response) {
+ var o, message, domain, firstParty;
+ if (regexEmpty.test(request.uri))
+ return false;
+ message = request.message;
+ if (!message)
+ return false;
+ firstParty = util.domainFromHost(message.firstParty.host);
+ domain = util.domainFromHost(message.uri.host);
+ if (firstParty == domain)
+ return false;
+ o = getPrivate(wv);
+ if (strIndexOf(o.domains, domain) == -1) {
+ o.domains.push(domain);
+ }
- // Check for requests that are always blocked
- if (persistentList._alwaysBlock && strIndexOf(persistentList._alwaysBlock, domain) != -1)
- return blockRequest(wv, request, o, domain);
+ // Check for requests that are always blocked
+ if (persistentList._alwaysBlock && strIndexOf(persistentList._alwaysBlock, domain) != -1)
+ return blockRequest(wv, request, o, domain);
- // Check if domain is always allowed
- if ((persistentList._all && strIndexOf(persistentList._all, firstParty) != -1) ||
- (tmpList._all && strIndexOf(tmpList._all, firstParty) != -1))
- return false;
+ // Check if domain is always allowed
+ if ((persistentList._all && strIndexOf(persistentList._all, firstParty) != -1) ||
+ (tmpList._all && strIndexOf(tmpList._all, firstParty) != -1))
+ return false;
- // Check request is always allowed
- if (persistentList._always && strIndexOf(persistentList._always, domain) != -1)
- return false;
+ // Check request is always allowed
+ if (persistentList._always && strIndexOf(persistentList._always, domain) != -1)
+ return false;
- // Check if request is whitelisted
- if ( (!persistentList[firstParty] || strIndexOf(persistentList[firstParty], domain) == -1) &&
- (!tmpList[firstParty] || strIndexOf(tmpList[firstParty], domain) == -1)) {
- return blockRequest(wv, request, o, domain);
- }
-}
+ // Check if request is whitelisted
+ if ( (!persistentList[firstParty] || strIndexOf(persistentList[firstParty], domain) == -1) &&
+ (!tmpList[firstParty] || strIndexOf(tmpList[firstParty], domain) == -1))
+ return blockRequest(wv, request, o, domain);
+ };
+})();
function navigationCB(wv, frame) {
if (frame == wv.mainFrame) {
var o = getPrivate(wv);