[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