[tbb-commits] [torbutton/master] Bug 26884 - Part 1: Move show_torbrowser_manual and

gk at torproject.org gk at torproject.org
Wed Aug 22 09:19:41 UTC 2018


commit 5b5931efdf9d8d8bc018d5c02abb14d4e379e160
Author: Igor Oliveira <igt0 at torproject.org>
Date:   Tue Jul 31 17:03:02 2018 -0300

    Bug 26884 - Part 1: Move show_torbrowser_manual and
    get_general_useragent_locale to utils
    
    On Desktop, show_torbrowser_manual is a torbutton.js method and it
    is called by other components using the window.opener.
    
    However, on mobile, the security settings is opened in a tab instead
    of a modal. Thus the window.opener is nil.
    
    This patch moves the show_torbrowser_manual to util.js allowing it
    to be accessible from anywhere.
---
 src/chrome/content/aboutTor/aboutTor-content.js |  4 +--
 src/chrome/content/preferences.js               |  4 +--
 src/chrome/content/tor-circuit-display.js       |  4 +--
 src/chrome/content/torbutton.js                 | 33 ++++---------------------
 src/modules/utils.js                            | 10 +++++++-
 5 files changed, 20 insertions(+), 35 deletions(-)

diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js
index c2e26c8c..ae20505e 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -18,7 +18,7 @@ var {classes: Cc, interfaces: Ci, utils: Cu} = Components;
 
 
 Cu.import("resource://gre/modules/Services.jsm");
-let { bindPrefAndInit } = Cu.import("resource://torbutton/modules/utils.js", {});
+let { bindPrefAndInit, show_torbrowser_manual } = Cu.import("resource://torbutton/modules/utils.js", {});
 
 
 var AboutTorListener = {
@@ -89,7 +89,7 @@ var AboutTorListener = {
     else
       body.removeAttribute("toron");
 
-    if (aData.showManual)
+    if (show_torbrowser_manual())
       body.setAttribute("showmanual", "yes");
     else
       body.removeAttribute("showmanual");
diff --git a/src/chrome/content/preferences.js b/src/chrome/content/preferences.js
index 36c8818c..81668d6e 100644
--- a/src/chrome/content/preferences.js
+++ b/src/chrome/content/preferences.js
@@ -5,7 +5,7 @@ let { utils: Cu } = Components;
 let { getBoolPref, getIntPref, setBoolPref, setIntPref, getCharPref } =
     Cu.import("resource://gre/modules/Services.jsm", {}).Services.prefs;
 
-let { getLocale } =
+let { getLocale, show_torbrowser_manual } =
     Cu.import("resource://torbutton/modules/utils.js", {});
 
 // Description elements have the follow names.
@@ -67,7 +67,7 @@ function torbutton_save_security_settings() {
 // Help Menu and on about:tor: if we have the manual available for a locale,
 // let's show the "Learn more"-link, otherwise hide it.
 function torbutton_set_learn_more_links() {
-  let show_manual = window.opener.torbutton_show_torbrowser_manual();
+  let show_manual = show_torbrowser_manual();
   let locale = ""
   if (show_manual) {
     locale = getLocale();
diff --git a/src/chrome/content/tor-circuit-display.js b/src/chrome/content/tor-circuit-display.js
index 7b12db08..fe6b51c1 100644
--- a/src/chrome/content/tor-circuit-display.js
+++ b/src/chrome/content/tor-circuit-display.js
@@ -33,7 +33,7 @@ Cu.import("resource://gre/modules/Services.jsm");
 let { controller } = Cu.import("resource://torbutton/modules/tor-control-port.js", {});
 
 // Utility functions
-let { bindPrefAndInit, observe } = Cu.import("resource://torbutton/modules/utils.js", {});
+let { bindPrefAndInit, observe, getLocale } = Cu.import("resource://torbutton/modules/utils.js", {});
 
 // Make the TorButton logger available.
 let logger = Cc["@torproject.org/torbutton-logger;1"]
@@ -381,7 +381,7 @@ let setupGuardNote = function () {
   let guardNoteString = uiString("guard_note");
   let learnMoreString = uiString("learn_more");
   let [noteBefore, name, noteAfter] = guardNoteString.split(/[\[\]]/);
-  let localeCode = torbutton_get_general_useragent_locale();
+  let localeCode = getLocale();
   appendHtml(guardNote,
              ["div", {},
               noteBefore, ["span", {class: "circuit-guard-name"}, name],
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 134f10da..b4e6ed18 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -8,8 +8,8 @@
 //       http://kb.mozillazine.org/Links_to_local_pages_don%27t_work
 
 let { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
-let { showDialog } = Cu.import("resource://torbutton/modules/utils.js", {});
-let { getLocale, unescapeTorString } = Cu.import("resource://torbutton/modules/utils.js", {});
+let { showDialog, show_torbrowser_manual } = Cu.import("resource://torbutton/modules/utils.js", {});
+let { unescapeTorString } = Cu.import("resource://torbutton/modules/utils.js", {});
 let SecurityPrefs = Cu.import("resource://torbutton/modules/security-prefs.js", {});
 let NoScriptControl = Cu.import("resource://torbutton/modules/noscript-control.js", {});
 let { bindPrefAndInit, observe } = Cu.import("resource://torbutton/modules/utils.js", {});
@@ -435,8 +435,7 @@ var torbutton_abouttor_message_handler = {
   // not working.
   get chromeData() {
     return {
-      torOn: torbutton_tor_check_ok(),
-      showManual: torbutton_show_torbrowser_manual()
+      torOn: torbutton_tor_check_ok()
     };
   }
 };
@@ -730,21 +729,6 @@ function torbutton_update_toolbutton()
                             torbutton_get_property_string(tooltipKey));
 }
 
-// Bug 1506 P3: Support code for language+uagent spoofing
-function torbutton_get_general_useragent_locale() {
-   try {
-        const locale = getLocale();
-        if (/chrome:\/\//.test(locale)) {
-            return m_tb_prefs.getComplexValue("intl.locale.requested",
-                       Components.interfaces.nsIPrefLocalizedString).data;
-        }
-        return locale;
-    } catch(err) {
-        torbutton_log(4, "Error while getting locale" + err);
-        return 'en-US';
-    }
-}
-
 // Bug 1506 P4: Control port interaction. Needed for New Identity.
 function torbutton_socket_readline(input) {
   var str = "";
@@ -2213,20 +2197,13 @@ function torbutton_update_noscript_button()
   }, 0);
 }
 
-// Returns true if we should show the tor browser manual.
-function torbutton_show_torbrowser_manual() {
-  let availableLocales = ["de", "en", "es", "fr", "nl", "pt", "tr", "vi", "zh"];
-  let shortLocale = torbutton_get_general_useragent_locale().substring(0, 2);
-  return availableLocales.indexOf(shortLocale) >= 0;
-}
-
 // Makes sure the item in the Help Menu and the link in about:tor
 // for the Tor Browser User Manual are only visible when
-// torbutton_show_torbrowser_manual() returns true.
+// show_torbrowser_manual() returns true.
 function torbutton_init_user_manual_links() {
   let menuitem = document.getElementById("torBrowserUserManual");
   bindPrefAndInit("intl.locale.requested", val => {
-    menuitem.hidden = !torbutton_show_torbrowser_manual();
+    menuitem.hidden = !show_torbrowser_manual();
     torbutton_abouttor_message_handler.updateAllOpenPages();
   });
 }
diff --git a/src/modules/utils.js b/src/modules/utils.js
index 0a2649dd..5af071ec 100644
--- a/src/modules/utils.js
+++ b/src/modules/utils.js
@@ -205,6 +205,14 @@ var unescapeTorString = function(str) {
   return _torControl._strUnescape(str);
 };
 
+// Returns true if we should show the tor browser manual.
+var show_torbrowser_manual = () => {
+  let availableLocales = ["de", "en", "es", "fr", "nl", "pt", "tr", "vi", "zh"];
+  let shortLocale = getLocale().substring(0, 2);
+  return availableLocales.indexOf(shortLocale) >= 0;
+}
+
+
 // Export utility functions for external use.
 let EXPORTED_SYMBOLS = ["bindPref", "bindPrefAndInit", "getEnv", "getLocale",
-                        "getPrefValue", "observe", "showDialog", "unescapeTorString"];
+                        "getPrefValue", "observe", "showDialog", "show_torbrowser_manual", "unescapeTorString"];





More information about the tbb-commits mailing list