[Pkg-mozext-commits] [SCM] torbutton Debian packaging branch, master, updated. debian/1.4.3-1
Jérémy Bobbio
lunar at debian.org
Tue Sep 13 21:33:37 UTC 2011
The following commit has been merged in the master branch:
commit 712e23b775c5254426c2ac5222f70d79167dd5af
Merge: 8ddc4b05fca193236d25758da38800bb556e9cff 8e5861a4d7e2d05ef85336e1ed25da715f507c42
Author: Jérémy Bobbio <lunar at debian.org>
Date: Tue Sep 13 22:53:38 2011 +0200
Merge commit 'upstream/1.4.3'
Conflicts:
src/chrome/content/torbutton.js
diff --combined src/chrome/content/torbutton.js
index 3372cf5,2e52830..afaa37b
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@@ -350,18 -350,10 +350,18 @@@ function torbutton_set_panel_view()
if (!o_statuspanel || !o_prefbranch) return;
// Firefox 4 has no toolbar panel
- var display_panel = o_prefbranch.getBoolPref('display_panel')
- && !m_tb_ff4;
+ var display_panel = o_prefbranch.getBoolPref('display_panel');
torbutton_log(2, 'setting panel visibility');
o_statuspanel.setAttribute('collapsed', !display_panel);
+
+ // Prevent the FF4 nav bar from making our menu invisible...
+ var o_toolbutton = torbutton_get_toolbutton();
+ if (o_toolbutton) {
+ var context = document.getElementById('torbutton-context-menu');
+ context.style.visibility = "visible";
+ context.hidden = false;
+ torbutton_log(3, "Set new context menu.");
+ }
}
function torbutton_set_panel_style() {
@@@ -410,10 -402,24 +410,24 @@@ function torbutton_set_status()
try {
torbutton_update_status(true, false);
} catch(e) {
- // This should never happen..
- // FIXME: Do we need to translate it? I'm guessing not.
- window.alert("Torbutton: Please file bug report! Error applying Tor settings: "+e);
torbutton_log(5,'Error applying tor settings: '+e);
+ var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
+ .getService(Components.interfaces.nsIWindowMediator);
+ var chrome = wm.getMostRecentWindow("navigator:browser");
+ var o_stringbundle = torbutton_get_stringbundle();
+ var warning1 = o_stringbundle.GetStringFromName("torbutton.popup.pref_error");
+
+ if (e.result == 0x80520015 || e.result == 0x80520013) { // NS_ERROR_FILE_ACCESS_DENIED/NS_ERROR_FILE_READ_ONLY
+ var warning2 = o_stringbundle.GetStringFromName("torbutton.popup.permission_denied");
+ chrome.alert(warning1+"\n\n"+warning2);
+ } else if (e.result == 0x80520010) { // NS_ERROR_FILE_NO_DEVICE_SPACE
+ var o_stringbundle = torbutton_get_stringbundle();
+ var warning2 = o_stringbundle.GetStringFromName("torbutton.popup.device_full");
+ chrome.alert(warning1+"\n\n"+warning2);
+ } else {
+ // This should never happen..
+ chrome.alert(warning1+"\n\n"+e);
+ }
// Setting these prefs should avoid ininite recursion
// because torbutton_update_status should return immediately
// on the next call.
@@@ -427,10 -433,25 +441,25 @@@
try {
torbutton_update_status(false, false);
} catch(e) {
- // This should never happen..
- // FIXME: Do we need to translate it? I'm guessing not.
- window.alert("Torbutton: Please file bug report! Error applying Non-Tor settings: "+e);
torbutton_log(5,'Error applying nontor settings: '+e);
+
+ var wm = Cc["@mozilla.org/appshell/window-mediator;1"]
+ .getService(Components.interfaces.nsIWindowMediator);
+ var chrome = wm.getMostRecentWindow("navigator:browser");
+ var o_stringbundle = torbutton_get_stringbundle();
+ var warning1 = o_stringbundle.GetStringFromName("torbutton.popup.pref_error");
+
+ if (e.result == 0x80520015 || e.result == 0x80520013) { // NS_ERROR_FILE_ACCESS_DENIED/NS_ERROR_FILE_READ_ONLY
+ var warning2 = o_stringbundle.GetStringFromName("torbutton.popup.permission_denied");
+ chrome.alert(warning1+"\n\n"+warning2);
+ } else if (e.result == 0x80520010) { // NS_ERROR_FILE_NO_DEVICE_SPACE
+ var o_stringbundle = torbutton_get_stringbundle();
+ var warning2 = o_stringbundle.GetStringFromName("torbutton.popup.device_full");
+ chrome.alert(warning1+"\n\n"+warning2);
+ } else {
+ // This should never happen..
+ chrome.alert(warning1+"\n\n"+e);
+ }
// Setting these prefs should avoid infinite recursion
// because torbutton_update_status should return immediately
// on the next call.
@@@ -446,6 -467,16 +475,6 @@@ function torbutton_init_toolbutton(
{
try {
torbutton_log(3, "Initializing the Torbutton button.");
- // Prevent the FF4 status bar from making our menu invisible...
- /* Not needed
- var o_toolbutton = torbutton_get_toolbutton();
- if (o_toolbutton) {
- var context = document.getElementById('torbutton-context-menu');
- context.style.visibility = "visible";
- context.hidden = false;
- torbutton_log(3, "Set new context menu.");
- }
- */
torbutton_update_toolbutton(torbutton_check_status());
} catch(e) {
torbutton_log(4, "Error Initializing Torbutton button: "+e);
@@@ -681,7 -712,7 +710,7 @@@ function torbutton_init_prefs()
torprefs.setBoolPref('use_privoxy', true);
if (torprefs.getBoolPref('use_privoxy')) {
- proxy_host = '127.0.0.1';
+ proxy_host = 'localhost';
proxy_port = 8118;
} else {
proxy_host = '';
@@@ -859,6 -890,53 +888,53 @@@ function torbutton_restore_nontor_setti
torbutton_log(2, 'settings restored');
}
+ function torbutton_check_version() {
+ torbutton_log(3, "Checking version");
+ try {
+ var req = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"]
+ .createInstance(Components.interfaces.nsIXMLHttpRequest);
+ //var req = new XMLHttpRequest(); Blocked by content policy
+ var url = m_tb_prefs.getCharPref("extensions.torbutton.versioncheck_url");
+ req.open('GET', url, false);
+ req.overrideMimeType("text/json");
+ req.send(null);
+ } catch(e) {
+ if(e.result == 0x80004005) { // NS_ERROR_FAILURE
+ torbutton_log(5, "Version check failed! Is tor running?");
+ return -1;
+ }
+ torbutton_log(5, "Version check failed! Tor internal error: "+e);
+ return -1;
+ }
+ if(req.status == 200) {
+ if(!req.responseText) {
+ torbutton_log(5, "Version check failed! No JSON present!");
+ return -1;
+ }
+ try {
+ var version_list = JSON.parse(req.responseText);
+ // torbrowser.version may not exist..
+ var my_version = m_tb_prefs.getCharPref("torbrowser.version");
+ for (var v in version_list) {
+ if (version_list[v] == my_version) {
+ return 1;
+ }
+ }
+ return 0;
+ } catch(e) {
+ torbutton_log(5, "Version check failed! JSON parsing error: "+e);
+ return -1;
+ }
+ } else if (req.status == 404) {
+ // We're going to assume 404 means the service is not implemented yet.
+ torbutton_log(3, "Version check failed. Versions file is 404.");
+ return -1;
+ }
+ torbutton_log(5, "Version check failed! Web server error: "+req.status);
+ return -1;
+ }
+
+
function torbutton_test_settings() {
var wasEnabled = true;
var ret = 0;
@@@ -1606,10 -1684,13 +1682,13 @@@ function torbutton_update_status(mode,
} else {
torbutton_setBoolPref("extensions.update.enabled", "extension_update",
true, mode, changed);
- torbutton_setBoolPref("app.update.enabled", "app_update",
+ // In TBB, do not touch these two. They must remain off.
+ if (!m_tb_tbb) {
+ torbutton_setBoolPref("app.update.enabled", "app_update",
true, mode, changed);
- torbutton_setBoolPref("app.update.auto", "auto_update",
+ torbutton_setBoolPref("app.update.auto", "auto_update",
true, mode, changed);
+ }
torbutton_setBoolPref("browser.search.update", "search_update",
true, mode, changed);
}
@@@ -1647,8 -1728,10 +1726,10 @@@
torbutton_setBoolPref("browser.cache.offline.enable", "offline_cache",
!mode, mode, changed);
- torbutton_setBoolPref("browser.zoom.siteSpecific", "zoom_specific",
+ if (!m_tb_tbb) {
+ torbutton_setBoolPref("browser.zoom.siteSpecific", "zoom_specific",
!mode, mode, changed);
+ }
// Disable safebrowsing in Tor for FF2. It fetches some info in
// cleartext with no HMAC (Firefox Bug 360387)
@@@ -2715,21 -2798,6 +2796,21 @@@ function torbutton_tag_new_browser(brow
}
}
+function torbutton_reload_homepage() {
+ var homepage = m_tb_prefs.getCharPref("browser.startup.homepage");
+ if (homepage.match(/chrome:\/\/.*\.properties$/)) {
+ try {
+ var bundle = Components.classes["@mozilla.org/intl/stringbundle;1"]
+ .getService(Components.interfaces.nsIStringBundleService);
+ var stringbundle = bundle.createBundle(homepage);
+ homepage = stringbundle.GetStringFromName("browser.startup.homepage");
+ } catch(err) {
+ torbutton_log(4, "Error while getting browser.startup.homepage:" + err);
+ }
+ }
+ gBrowser.loadURI(homepage, null, null);
+}
+
function torbutton_set_launch_state(state, session_restore) {
if (!m_tb_wasinited) torbutton_init();
var no_plugins = m_tb_prefs.getBoolPref("extensions.torbutton.no_tor_plugins");
@@@ -2785,11 -2853,28 +2866,27 @@@
if (state) {
torbutton_disable_tor();
torbutton_enable_tor(true);
- torbutton_log(4, "Tor state updated.");
+ torbutton_log(3, "Tor state updated.");
// Load our homepage again. We just killed it via the toggle.
if (!session_restore) {
- torbutton_reload_homepage();
+ if (m_tb_tbb && m_tb_prefs.getBoolPref("extensions.torbutton.versioncheck_enabled")) {
+ var is_updated = torbutton_check_version();
+ var locale = m_tb_prefs.getCharPref("general.useragent.locale");
+ if (is_updated == 0) {
+ // In an ideal world, we'd just check for hasUserValue, but we can't do
+ // that, because we set browser.startup.homepage to have a user value already...
+ m_tb_prefs.setCharPref("browser.startup.homepage",
+ "https://check.torproject.org/?lang="+locale+"&small=1&uptodate=0");
+ } else if (is_updated == 1) {
+ var homepage = m_tb_prefs.getCharPref("browser.startup.homepage");
+ if (homepage.indexOf("https://check.torproject.org/") == 0) {
+ m_tb_prefs.setCharPref("browser.startup.homepage",
+ "https://check.torproject.org/?lang="+locale+"&small=1&uptodate=1");
+ }
+ }
+ }
- var homepage = m_tb_prefs.getCharPref("browser.startup.homepage");
- gBrowser.loadURI(homepage, null, null);
++ torbutton_reload_homepage();
}
} else {
torbutton_log(3, "Leaving tor disabled");
@@@ -2802,7 -2887,8 +2899,7 @@@
// Load our homepage again. We just killed it via the toggle.
if (!session_restore) {
- var homepage = m_tb_prefs.getCharPref("browser.startup.homepage");
- gBrowser.loadURI(homepage, null, null);
+ torbutton_reload_homepage();
}
}
}
@@@ -4243,9 -4329,12 +4340,12 @@@ function torbutton_hookdoc(win, doc, st
// This keeps window.name clean between fresh urls.
// It should also apply to iframes because hookdoc gets called for all
// frames and subdocuments.
- if (!referrer || referrer.spec == "") {
- win.name = null;
- win.window.name = null;
+ //
+ // The about:blank check handles the 'name' attribute of framesets, which
+ // get set before the referer is set on the channel.
+ if ((!referrer || referrer.spec == "") && win.location != "about:blank") {
+ win.name = "";
+ win.window.name = "";
}
} catch(e) {
torbutton_log(4, "Failed to reset window.name: "+e)
--
torbutton Debian packaging
More information about the Pkg-mozext-commits
mailing list