[Pkg-mozext-commits] [SCM] torbutton Debian packaging branch, master, updated. debian/1.4.6-1

Jérémy Bobbio lunar at debian.org
Sat Jun 23 14:03:55 UTC 2012


The following commit has been merged in the master branch:
commit 133b1926a9e7750b5d2a601c756aa4c3e0cc3742
Merge: 1158fcdf6c54a879894851e93cb65b5a7eab4410 643461f1b6ceb7184c7230f314d63e3604dc4184
Author: Jérémy Bobbio <lunar at debian.org>
Date:   Sat Jun 23 15:16:04 2012 +0200

    Merge commit 'upstream/1.4.6'

diff --combined src/chrome/content/torbutton.js
index ca370d2,f80b5a2..8dc9ee9
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@@ -352,18 -352,10 +352,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() {
@@@ -477,6 -469,16 +477,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);
@@@ -627,6 -629,28 +627,28 @@@ function torbutton_prompt_for_language_
    m_tb_prefs.setBoolPref("extensions.torbutton.prompted_language", true);
  }
  
+ function torbutton_inform_about_tbb() {
+   var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"]
+       .getService(Components.interfaces.nsIPromptService);
+ 
+   var strings = torbutton_get_stringbundle();
+   var message = strings.GetStringFromName("torbutton.popup.prompt_torbrowser");
+   var title = strings.GetStringFromName("torbutton.title.prompt_torbrowser");
+   var checkbox = {value: false};
+ 
+   var sb = Components.classes["@mozilla.org/intl/stringbundle;1"]
+       .getService(Components.interfaces.nsIStringBundleService);
+   var browserstrings = sb.createBundle("chrome://browser/locale/browser.properties");
+ 
+   var askagain = browserstrings.GetStringFromName("privateBrowsingNeverAsk");
+ 
+   var response = prompts.alertCheck(null, title, message, askagain, checkbox);
+ 
+   // Update preferences to reflect their response and to prevent the prompt from
+   // being displayed again.
+   m_tb_prefs.setBoolPref("extensions.torbutton.prompt_torbrowser", !checkbox.value);
+ }
+ 
  //this function checks to see if the context menu is being clicked on a link.
  //if it is, then we show the two context menu items
  function torbutton_check_contextmenu() {
@@@ -721,7 -745,7 +743,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 = '';
@@@ -883,6 -907,71 +905,71 @@@ function torbutton_restore_nontor_setti
    torbutton_log(2, 'settings restored');
  }
  
+ function torbutton_do_async_versioncheck() {
+   if (!m_tb_tbb || !m_tb_prefs.getBoolPref("extensions.torbutton.versioncheck_enabled")) {
+     return;
+   }
+   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, true);
+     req.channel.loadFlags |= Ci.nsIRequest.LOAD_BYPASS_CACHE;
+     req.overrideMimeType("text/json");
+     req.onreadystatechange = function (oEvent) {  
+       if (req.readyState === 4) {
+         if(req.status == 200) {
+           if(!req.responseText) {
+             torbutton_log(5, "Version check failed! No JSON present!");
+             return -1;
+           }
+           try {
+             var locale = m_tb_prefs.getCharPref("general.useragent.locale");
+             var version_list = JSON.parse(req.responseText);
+             var my_version = m_tb_prefs.getCharPref("torbrowser.version");
+             for (var v in version_list) {
+               if (version_list[v] == my_version) {
+                 torbutton_log(3, "Version check passed.");
+                 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");
+                 }
+                 return;
+               }
+             }
+             torbutton_log(5, "Your Tor Browser is out of date.");
+             // Not up to date
+             m_tb_prefs.setCharPref("browser.startup.homepage",
+                 "https://check.torproject.org/?lang="+locale+"&small=1&uptodate=0");
+             return;
+           } catch(e) {
+             torbutton_log(5, "Version check failed! JSON parsing error: "+e);
+             return;
+           }
+         } 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;
+       }  
+     };  
+     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;
+   }
+ 
+ }
+ 
  function torbutton_check_version() {
    torbutton_log(3, "Checking version");
    try {
@@@ -1370,7 -1459,7 +1457,7 @@@ function torbutton_new_identity() 
   *   2. Disables Javascript and plugins on all tabs
   *   3. Clears state:
   *      a. OCSP
-  *      b. Cache
+  *      b. Cache + image cache
   *      c. Site-specific zoom
   *      d. Cookies+DOM Storage+safe browsing key
   *      e. google wifi geolocation token
@@@ -1379,6 -1468,8 +1466,8 @@@
   *      h. last open location url
   *      i. clear content prefs
   *   4. Sends tor the NEWNYM signal to get a new circuit
+  *   5. Opens a new window with the default homepage
+  *   6. Closes this window
   *
   * XXX: intermediate SSL certificates are not cleared.
   */
@@@ -1430,6 -1521,16 +1519,16 @@@ function torbutton_do_new_identity() 
  
    torbutton_close_on_toggle(true, true);
  
+   var searchBar = window.document.getElementById("searchbar");
+   if (searchBar)
+       searchBar.textbox.reset();
+ 
+   if (gFindBarInitialized) {
+       var findbox = gFindBar.getElement("findbar-textbox");
+       findbox.reset();
+       gFindBar.close();
+   }
+ 
    if(m_tb_prefs.getBoolPref('extensions.torbutton.clear_http_auth')) {
        var auth = Components.classes["@mozilla.org/network/http-auth-manager;1"].
            getService(Components.interfaces.nsIHttpAuthManager);
@@@ -1479,6 -1580,10 +1578,10 @@@
    m_tb_prefs.setIntPref("browser.sessionstore.max_tabs_undo", 0);
    m_tb_prefs.setIntPref("browser.sessionstore.max_tabs_undo", tabs);
  
+   var imgCache = Components.classes["@mozilla.org/image/cache;1"].
+             getService(Components.interfaces.imgICache);
+   imgCache.clearCache(false); // evict all but chrome cache
+ 
    var cache = Components.classes["@mozilla.org/network/cache-service;1"].
        getService(Components.interfaces.nsICacheService);
    try {
@@@ -1504,6 -1609,7 +1607,7 @@@
    obsSvc.notifyObservers(this, "net:prune-all-connections", null);
  
    // XXX: This may not clear zoom site-specific
+   // browser.content.full-zoom
    var cps = Cc["@mozilla.org/content-pref/service;1"].
        createInstance(Ci.nsIContentPrefService);
    cps.removeGroupedPrefs();
@@@ -1528,10 -1634,13 +1632,13 @@@
      }
    }
  
-   // gBrowser should always be here.
-   torbutton_set_window_size(gBrowser.contentWindow);
+   // Open a new window with the TBB check homepage
+   OpenBrowserWindow();
  
    torbutton_log(3, "New identity successful");
+ 
+   // Close the current window for added safety
+   window.close();
  }
  
  // toggles plugins: true for disabled, false for enabled
@@@ -1936,6 -2045,14 +2043,14 @@@ function torbutton_update_status(mode, 
          return;
      }
  
+     // #5758: Last ditch effort to keep Vanilla Torbutton users from totally
+     // being pwnt.  This is a pretty darn ugly hack, too. But because of #5863,
+     // we really don't care about preserving the user's values for this.
+     if (!m_tb_tbb) {
+         m_tb_prefs.setBoolPref("network.websocket.enabled", false);
+         m_tb_prefs.setBoolPref("dom.indexedDB.enabled", false);
+     }
+ 
      torbutton_set_timezone(mode, false);
  
      // This call also has to be here for 3rd party proxy changers.
@@@ -2124,6 -2241,10 +2239,10 @@@ function torbutton_check_protections(
  
    if (!m_tb_control_pass || !m_tb_control_port)
      document.getElementById("torbutton-new-identity").disabled = true;
+ 
+   if (!m_tb_tbb && m_tb_prefs.getBoolPref("extensions.torbutton.prompt_torbrowser")) {
+       torbutton_inform_about_tbb();
+   }
  }
  
  function torbutton_open_cookie_dialog() {
@@@ -2935,7 -3056,7 +3054,7 @@@ function torbutton_set_launch_state(sta
          torbutton_enable_tor(true);
          torbutton_log(3, "Tor state updated.");
  
-         torbutton_do_versioncheck();
+         torbutton_do_async_versioncheck();
          
          // Load our homepage again. We just killed it via the toggle.
          if (!session_restore) {
@@@ -2950,7 -3071,7 +3069,7 @@@
          if(state) torbutton_enable_tor(true);
          else  torbutton_disable_tor();
          
-         torbutton_do_versioncheck();
+         torbutton_do_async_versioncheck();
  
          // Load our homepage again. We just killed it via the toggle.
          if (!session_restore) {
@@@ -3933,6 -4054,14 +4052,14 @@@ function torbutton_do_startup(
            m_tb_prefs.setCharPref('extensions.torbutton.socks_host', '127.0.0.1');
          }
  
+         if (!m_tb_tbb && m_tb_prefs.getBoolPref("extensions.torbutton.prompt_torbrowser")) {
+           var o_stringbundle = torbutton_get_stringbundle();
+           var warning = o_stringbundle.GetStringFromName("torbutton.popup.short_torbrowser");
+           var title = o_stringbundle.GetStringFromName("torbutton.title.prompt_torbrowser");
+           var prompts = Cc["@mozilla.org/embedcomp/prompt-service;1"].getService(Components.interfaces.nsIPromptService);
+           prompts.alert(null, title, warning);
+         }
+ 
          m_tb_prefs.setBoolPref("extensions.torbutton.startup", false);
      }
  }
@@@ -4034,6 -4163,7 +4161,7 @@@ function torbutton_do_resize(ev
      m_tb_window_width = window.outerWidth;
  }
  
+ // XXX: unused. Use torbutton_set_window_size instead
  function torbutton_check_round(browser) 
  {
      if(torbutton_is_windowed(window)
@@@ -4076,12 -4206,21 +4204,21 @@@ function torbutton_set_window_size(bWin
          // at this point...
          bWin.innerWidth = 200;
          bWin.innerHeight = 200;
+ 
+         // XXX: This is sufficient to prevent some kind of weird resize race condition on Linux.
+         // Why or how, you ask? I have no fucking clue, man.
+         if (bWin.innerWidth != 200 || bWin.innerHeight != 200) {
+             bWin.innerHeight = 200;
+             bWin.innerWidth = 200;
+         }
          torbutton_log(3, "About to resize new window: "+window.outerWidth+"x"+window.outerHeight
                  +" inner: "+bWin.innerWidth+"x"+bWin.innerHeight+
                  " in state "+window.windowState+" Have "+availWidth.value+"x"+availHeight.value);
  
-         var maxHeight = availHeight.value - (window.outerHeight - bWin.innerHeight) - 101;
+         var maxHeight = availHeight.value - (window.outerHeight - bWin.innerHeight) - 51;
          var maxWidth = availWidth.value - (window.outerWidth - bWin.innerWidth);
+         
+         torbutton_log(3, "Got max dimensions: "+maxWidth+"x"+maxHeight);
  
          var width;
          var height;
@@@ -4132,7 -4271,8 +4269,8 @@@ function torbutton_new_window(event
  
      torbutton_set_window_size(browser.contentWindow);
  
-     //window.addEventListener("resize", torbutton_do_resize, true);
+     // Check the version on every new window. We're already pinging check in these cases.    
+     torbutton_do_async_versioncheck();
  }
  
  function torbutton_close_window(event) {
@@@ -4365,7 -4505,6 +4503,6 @@@ function torbutton_update_tags(win, new
              // NoScript
              torbutton_log(3, "Javascript changed from "+browser.docShell.allowJavascript+" to: "+js_enabled);
              browser.docShell.allowJavascript = js_enabled;
-             torbutton_check_round(browser);
  
              // Tag this specially, so that the next onLocationChange
              // doesn't redo these hooks.
@@@ -4374,10 -4513,6 +4511,6 @@@
              // JS was not fully enabled for some page elements. 
              // Need to reload
              browser.reload(); 
-         } else {
-             // We need to do the resize here as well in case the window
-             // was minimized during toggle...
-             torbutton_check_round(browser);
          }
      }
  

-- 
torbutton Debian packaging



More information about the Pkg-mozext-commits mailing list