[tbb-commits] [torbutton/master] Bug 26100: Migrate general.useragent.locale to intl.locale.requested
gk at torproject.org
gk at torproject.org
Fri May 25 06:13:17 UTC 2018
commit 399d2ba81505e4a74535b61f60563f4a9c2a8f6d
Author: Igor Oliveira <igt0 at torproject.org>
Date: Wed Feb 28 13:43:48 2018 -0300
Bug 26100: Migrate general.useragent.locale to intl.locale.requested
intl.locale.requested is the new way that Gecko handles locales.
See https://bugzilla.mozilla.org/show_bug.cgi?id=1414390
---
src/chrome/content/aboutTor/aboutTor-content.js | 6 ++++--
src/chrome/content/menu-overlay.xul | 2 +-
src/chrome/content/preferences.js | 5 ++++-
src/chrome/content/torbutton.js | 10 +++++-----
src/modules/utils.js | 10 ++++++++--
5 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/src/chrome/content/aboutTor/aboutTor-content.js b/src/chrome/content/aboutTor/aboutTor-content.js
index ec515bb..1a8d5cf 100644
--- a/src/chrome/content/aboutTor/aboutTor-content.js
+++ b/src/chrome/content/aboutTor/aboutTor-content.js
@@ -67,8 +67,10 @@ var AboutTorListener = {
onPageLoad: function() {
// Arrange to update localized text and links.
- bindPrefAndInit("general.useragent.locale", aNewVal => {
- this.onLocaleChange(aNewVal);
+ bindPrefAndInit("intl.locale.requested", aNewVal => {
+ if (aNewVal !== null) {
+ this.onLocaleChange(aNewVal);
+ }
});
// Add message and event listeners.
diff --git a/src/chrome/content/menu-overlay.xul b/src/chrome/content/menu-overlay.xul
index 53654c5..f6c6fbd 100644
--- a/src/chrome/content/menu-overlay.xul
+++ b/src/chrome/content/menu-overlay.xul
@@ -22,6 +22,6 @@
position="1"
label="&aboutTor.torbrowser_user_manual.label;"
accesskey="&aboutTor.torbrowser_user_manual.accesskey;"
- oncommand="gBrowser.selectedTab = gBrowser.addTab('https://tb-manual.torproject.org/' + Services.prefs.getCharPref('general.useragent.locale'))" />
+ oncommand="gBrowser.selectedTab = gBrowser.addTab('https://tb-manual.torproject.org/' + Services.locale.getRequestedLocale())" />
</menupopup>
</overlay>
diff --git a/src/chrome/content/preferences.js b/src/chrome/content/preferences.js
index 721ff46..36c8818 100644
--- a/src/chrome/content/preferences.js
+++ b/src/chrome/content/preferences.js
@@ -5,6 +5,9 @@ let { utils: Cu } = Components;
let { getBoolPref, getIntPref, setBoolPref, setIntPref, getCharPref } =
Cu.import("resource://gre/modules/Services.jsm", {}).Services.prefs;
+let { getLocale } =
+ Cu.import("resource://torbutton/modules/utils.js", {});
+
// Description elements have the follow names.
const descNames =
[, "desc_safest", "desc_safer", "desc_standard"];
@@ -67,7 +70,7 @@ function torbutton_set_learn_more_links() {
let show_manual = window.opener.torbutton_show_torbrowser_manual();
let locale = ""
if (show_manual) {
- locale = getCharPref('general.useragent.locale');
+ locale = getLocale();
}
let links = linkNames.map(name => document.getElementById(name));
links.forEach(link => {;
diff --git a/src/chrome/content/torbutton.js b/src/chrome/content/torbutton.js
index 2f1f689..d744d15 100644
--- a/src/chrome/content/torbutton.js
+++ b/src/chrome/content/torbutton.js
@@ -10,7 +10,7 @@
let { LoadContextInfo } = Cu.import('resource://gre/modules/LoadContextInfo.jsm', {});
let { Services } = Cu.import("resource://gre/modules/Services.jsm", {});
let { showDialog } = Cu.import("resource://torbutton/modules/utils.js", {});
-let { unescapeTorString } = Cu.import("resource://torbutton/modules/utils.js", {});
+let { getLocale, unescapeTorString } = Cu.import("resource://torbutton/modules/utils.js", {});
let SecurityPrefs = Cu.import("resource://torbutton/modules/security-prefs.js", {});
let { bindPrefAndInit, observe } = Cu.import("resource://torbutton/modules/utils.js", {});
@@ -818,14 +818,14 @@ function torbutton_update_toolbutton()
// Bug 1506 P3: Support code for language+uagent spoofing
function torbutton_get_general_useragent_locale() {
try {
- var locale = m_tb_prefs.getCharPref("general.useragent.locale");
+ const locale = getLocale();
if (/chrome:\/\//.test(locale)) {
- return m_tb_prefs.getComplexValue("general.useragent.locale",
+ return m_tb_prefs.getComplexValue("intl.locale.requested",
Components.interfaces.nsIPrefLocalizedString).data;
}
return locale;
} catch(err) {
- torbutton_log(4, "Error while getting general.useragent.locale:" + err);
+ torbutton_log(4, "Error while getting locale" + err);
return 'en-US';
}
}
@@ -2380,7 +2380,7 @@ function torbutton_show_torbrowser_manual() {
// torbutton_show_torbrowser_manual() returns true.
function torbutton_init_user_manual_links() {
let menuitem = document.getElementById("torBrowserUserManual");
- bindPrefAndInit("general.useragent.locale", val => {
+ bindPrefAndInit("intl.locale.requested", val => {
menuitem.hidden = !torbutton_show_torbrowser_manual();
torbutton_abouttor_message_handler.updateAllOpenPages();
});
diff --git a/src/modules/utils.js b/src/modules/utils.js
index fa4405e..0a2649d 100644
--- a/src/modules/utils.js
+++ b/src/modules/utils.js
@@ -79,6 +79,12 @@ var getEnv = function (name) {
return env.exists(name) ? env.get(name) : undefined;
};
+// __getLocale
+// Reads the browser locale, the default locale is en-US.
+var getLocale = function() {
+ return Services.locale.getRequestedLocale() || "en-US";
+}
+
// ## Windows
// __dialogsByName__.
@@ -200,5 +206,5 @@ var unescapeTorString = function(str) {
};
// Export utility functions for external use.
-let EXPORTED_SYMBOLS = ["bindPref", "bindPrefAndInit", "getEnv", "getPrefValue",
- "observe", "showDialog", "unescapeTorString"];
+let EXPORTED_SYMBOLS = ["bindPref", "bindPrefAndInit", "getEnv", "getLocale",
+ "getPrefValue", "observe", "showDialog", "unescapeTorString"];
More information about the tbb-commits
mailing list