[or-cvs] r13814: Make the navigator object's hooks dynamicly mirror all prope (torbutton/trunk/src/chrome/content)
mikeperry at seul.org
mikeperry at seul.org
Mon Mar 3 08:44:27 UTC 2008
Author: mikeperry
Date: 2008-03-03 03:44:27 -0500 (Mon, 03 Mar 2008)
New Revision: 13814
Modified:
torbutton/trunk/src/chrome/content/jshooks.js
Log:
Make the navigator object's hooks dynamicly mirror all
properties instead of listing them manually.
Modified: torbutton/trunk/src/chrome/content/jshooks.js
===================================================================
--- torbutton/trunk/src/chrome/content/jshooks.js 2008-03-03 03:52:51 UTC (rev 13813)
+++ torbutton/trunk/src/chrome/content/jshooks.js 2008-03-03 08:44:27 UTC (rev 13814)
@@ -18,27 +18,24 @@
// like Date upon delete, allowing unmasking for that case. Talk about
// rock+hard place.
try {
- var cE = window.navigator.cookieEnabled;
- var lang = window.navigator.language;
- var uA = window.navigator.userAgent;
- var v = window.navigator.vendor;
- var vS = window.navigator.vendorSub;
- var jE = window.navigator.javaEnabled;
+ if(!(window.navigator.__proto__ == null) ||
+ typeof(window.navigator.__defineGetter__) === "function") {
+ var tmpNav = new Object();
+ var f;
+ for(var i in window.navigator) {
+ tmpNav[i] = window.navigator[i];
+ f = function() { // crazy scope hack to preserve i
+ var holder = i;
+ window.navigator.__defineGetter__(i, function() { return tmpNav[holder];});
+ };
+ f();
+ }
- window.navigator.__defineGetter__("appCodeName", function() { return "Mozilla";});
- window.navigator.__defineGetter__("appName", function() { return "Netscape";});
- window.navigator.__defineGetter__("appVersion", function() { return "5.0";});
- window.navigator.__defineGetter__("cookieEnabled", function() { return cE;});
- window.navigator.__defineGetter__("language", function() { return lang;});
- window.navigator.__defineGetter__("userAgent", function() { return uA;});
- window.navigator.__defineGetter__("vendor", function() { return v;});
- window.navigator.__defineGetter__("vendorSub", function() { return vS;});
- window.navigator.__defineGetter__("javaEnabled", function() { return jE;});
- window.navigator.__defineGetter__("oscpu", function() { return tmp_oscpu;});
- window.navigator.__defineGetter__("productSub", function() { return tmp_productSub;});
- window.navigator.__defineGetter__("buildID", function() { return 0;});
- window.navigator.__proto__ = null;
- /*navigator.__proto__.__defineGetter__("platform", function() { return tmp_platform;});*/
+ window.navigator.__defineGetter__("oscpu", function() { return tmp_oscpu;});
+ window.navigator.__defineGetter__("productSub", function() { return tmp_productSub;});
+ window.navigator.__defineGetter__("buildID", function() { return 0;});
+ window.navigator.__proto__ = null;
+ }
} catch(e) {
}
}
@@ -282,13 +279,7 @@
var wintmp = window;
with(window.valueOf.call()) {
for(var i in wintmp) {
- if(i == "globalStorage" || i == "sessionStorage") {
- //Causes an exception without this.
- //Disabled for now anyways.
- tmp[i] = new Object();
- } else {
- tmp[i] = wintmp[i];
- }
+ tmp[i] = wintmp[i];
}
try { // FF3 throws an exception here
var __proto__ = tmp;
More information about the tor-commits
mailing list