[or-cvs] r20091: {torbutton} Add chrome protection function to protect against discovery (torbutton/trunk/src/components)

mikeperry at seul.org mikeperry at seul.org
Mon Jul 20 01:33:10 UTC 2009


Author: mikeperry
Date: 2009-07-19 21:33:09 -0400 (Sun, 19 Jul 2009)
New Revision: 20091

Modified:
   torbutton/trunk/src/components/cssblocker.js
Log:

Add chrome protection function to protect against discovery 
of other addons. Patch by Sebastian Lisken.



Modified: torbutton/trunk/src/components/cssblocker.js
===================================================================
--- torbutton/trunk/src/components/cssblocker.js	2009-07-19 17:54:11 UTC (rev 20090)
+++ torbutton/trunk/src/components/cssblocker.js	2009-07-20 01:33:09 UTC (rev 20091)
@@ -101,6 +101,8 @@
 var hostFreeSchemes = { "resource":true, "data":true, "cid":true, 
      "file":true, "view-source":true, "about":true};
 
+var protectedChromeHosts = { "torbutton": true };
+
 function ContentPolicy() {
     this.logger = Components.classes["@torproject.org/torbutton-logger;1"]
         .getService(Components.interfaces.nsISupports).wrappedJSObject;
@@ -126,6 +128,7 @@
     this.block_nontor_file_net = this._prefs.getBoolPref("extensions.torbutton.block_nontor_file_net");
     this.no_tor_plugins = this._prefs.getBoolPref("extensions.torbutton.no_tor_plugins");
 
+    this.wrappedJSObject = this;
     return;
 }
 
@@ -256,7 +259,7 @@
                                           contentLocation.spec);
                         return ok;
                     } else {
-                        if (this.tor_enabling || ("torbutton" == targetHost)) {
+                        if (this.tor_enabling || (targetHost in protectedChromeHosts)) {
                             this.logger.eclog(4, "Blocking local request from: "
                                               +requestOrigin.spec+" ("
                                               +requestOrigin.scheme+") for: "+
@@ -413,6 +416,11 @@
                 this.no_tor_plugins = this._prefs.getBoolPref("extensions.torbutton.no_tor_plugins");
                 break;
         }
+    },
+
+    // API to add another addon to be protected from discovery
+    addProtectedChromeHost: function(name) {
+        protectedChromeHosts[name] = true;
     }
 };
 



More information about the tor-commits mailing list