[or-cvs] [https-everywhere/master] Do not parse README as a rule; refactor HTTPSRules.js

pde at torproject.org pde at torproject.org
Tue Nov 2 01:28:18 UTC 2010


Author: Peter Eckersley <pde at eff.org>
Date: Mon, 1 Nov 2010 18:27:13 -0700
Subject: Do not parse README as a rule; refactor HTTPSRules.js
Commit: 9b16109a6f4e8d537bfda302fecf1213db112e7a

---
 src/chrome/content/code/HTTPSRules.js |   57 +++++++++++++++-----------------
 1 files changed, 27 insertions(+), 30 deletions(-)

diff --git a/src/chrome/content/code/HTTPSRules.js b/src/chrome/content/code/HTTPSRules.js
index 54c0426..6182daf 100644
--- a/src/chrome/content/code/HTTPSRules.js
+++ b/src/chrome/content/code/HTTPSRules.js
@@ -204,6 +204,12 @@ const RuleWriter = {
       return null;
     }
 
+    this.log(DBUG, "name is '" + xmlrules. at name + "'\n");
+    if (xmlrules. at name == xmlrules. at nonexistantthing) {
+      this.log(DBUG, "FILE " + file + "is not a rulefile\n");
+      return null;
+    }
+
     var match_rl = null;
     var dflt_off = null;
     if (xmlrules. at match_rule.length() > 0) match_rl = xmlrules. at match_rule;
@@ -238,42 +244,18 @@ const RuleWriter = {
   },
 };
 
+
+
 const HTTPSRules = {
   init: function() {
-    /*
-    // XXX: Major, temporary hack.
-    var ruleset = new RuleSet("Facebook", null);
-    ruleset.rules.push(new Rule("^http://www.facebook.com",
-                                "https://www.facebook.com"));
-    RuleWriter.write(ruleset);
-    this.rules = [];
-    this.rules.push(ruleset);
-    return;
-    */
     try {
-      var rulefiles = RuleWriter.enumerate(RuleWriter.getCustomRuleDir());
-      var i = 0;
       this.rules = [];
       this.exclusions = [];
-      for(i = 0; i < rulefiles.length; ++i) {
-        try {
-          this.log(DBUG,"Loading rule file: "+rulefiles[i]);
-          this.rules.push(RuleWriter.read(rulefiles[i]));
-        } catch(e) {
-          this.log(WARN, "Error in rules file: " + e);
-        }
-      }
+      var rulefiles = RuleWriter.enumerate(RuleWriter.getCustomRuleDir());
+      this.scanRulefiles(rulefiles);
+      rulefiles = RuleWriter.enumerate(RuleWriter.getRuleDir());
+      this.scanRulefiles(rulefiles);
 
-      var rulefiles = RuleWriter.enumerate(RuleWriter.getRuleDir());
-      var i = 0;
-      for(i = 0; i < rulefiles.length; ++i) {
-        try {
-          this.log(DBUG,"Loading rule file: "+rulefiles[i]);
-          this.rules.push(RuleWriter.read(rulefiles[i]));
-        } catch(e) {
-          this.log(WARN, "Error in rules file: " + e);
-        }
-      }
     } catch(e) {
       this.log(WARN,"Rules Failed: "+e);
     }
@@ -281,6 +263,21 @@ const HTTPSRules = {
     return;
   },
 
+  scanRulefiles: function(rulefiles) {
+    var i = 0;
+    var r = null;
+    for(i = 0; i < rulefiles.length; ++i) {
+      try {
+        this.log(DBUG,"Loading rule file: "+rulefiles[i].path);
+        r = RuleWriter.read(rulefiles[i]);
+        if (r != null)
+          this.rules.push(r);
+      } catch(e) {
+        this.log(WARN, "Error in rules file: " + e);
+      }
+    }
+  },
+
   replaceURI: function(uri) {
     var i = 0;
     for(i = 0; i < this.rules.length; ++i) {
-- 
1.7.1



More information about the tor-commits mailing list