Bug 1337551: Migrate Services.jsm to use LocaleService. r=mossop
MozReview-Commit-ID: G0HFXfg4r6Y
--- a/addon-sdk/source/test/test-l10n-locale.js
+++ b/addon-sdk/source/test/test-l10n-locale.js
@@ -105,18 +105,17 @@ exports.testPreferedContentLocale = func
prefs.reset(PREF_ACCEPT_LANGUAGES);
}
exports.testPreferedOsLocale = function(assert) {
prefs.set(PREF_MATCH_OS_LOCALE, true);
prefs.set(PREF_SELECTED_LOCALE, "");
prefs.set(PREF_ACCEPT_LANGUAGES, "");
- let expectedLocale = Services.locale.getLocaleComponentForUserAgent().
- toLowerCase();
+ let expectedLocale = Services.locale.getAppLocale().toLowerCase();
let expectedLocaleList = [expectedLocale];
// Add default "en-us" fallback if the main language is not already en-us
if (expectedLocale != "en-us")
expectedLocaleList.push("en-us");
assertPrefered(assert, expectedLocaleList, "Ensure that we select OS locale when related preference is set");
--- a/browser/modules/DirectoryLinksProvider.jsm
+++ b/browser/modules/DirectoryLinksProvider.jsm
@@ -189,17 +189,18 @@ var DirectoryLinksProvider = {
*/
get locale() {
let matchOS;
try {
matchOS = Services.prefs.getBoolPref(PREF_MATCH_OS_LOCALE);
} catch (e) {}
if (matchOS) {
- return Services.locale.getLocaleComponentForUserAgent();
+ return Cc["@mozilla.org/intl/ospreferences;1"].
+ getService(Ci.mozIOSPreferences).getSystemLocale();
}
try {
let locale = Services.prefs.getComplexValue(PREF_SELECTED_LOCALE,
Ci.nsIPrefLocalizedString);
if (locale) {
return locale.data;
}
--- a/toolkit/components/telemetry/TelemetryEnvironment.jsm
+++ b/toolkit/components/telemetry/TelemetryEnvironment.jsm
@@ -225,31 +225,31 @@ function enforceBoolean(aValue) {
}
/**
* Get the current browser.
* @return a string with the locale or null on failure.
*/
function getBrowserLocale() {
try {
- return Cc["@mozilla.org/chrome/chrome-registry;1"].
- getService(Ci.nsIXULChromeRegistry).
- getSelectedLocale("global");
+ return Services.locale.getAppLocale();
} catch (e) {
return null;
}
}
/**
* Get the current OS locale.
* @return a string with the OS locale or null on failure.
*/
function getSystemLocale() {
try {
- return Services.locale.getLocaleComponentForUserAgent();
+ return Cc["@mozilla.org/intl/ospreferences;1"].
+ getService(Ci.mozIOSPreferences).
+ getSystemLocale();
} catch (e) {
return null;
}
}
/**
* Safely get a sysinfo property and return its value. If the property is not
* available, return aDefault.
--- a/toolkit/modules/Locale.jsm
+++ b/toolkit/modules/Locale.jsm
@@ -13,18 +13,21 @@ const PREF_MATCH_OS_LOCALE =
const PREF_SELECTED_LOCALE = "general.useragent.locale";
this.Locale = {
/**
* Gets the currently selected locale for display.
* @return the selected locale or "en-US" if none is selected
*/
getLocale() {
- if (Preferences.get(PREF_MATCH_OS_LOCALE, false))
- return Services.locale.getLocaleComponentForUserAgent();
+ if (Preferences.get(PREF_MATCH_OS_LOCALE, false)) {
+ const osPrefs =
+ Cc["@mozilla.org/intl/ospreferences;1"].getService(Ci.mozIOSPreferences);
+ return osPrefs.getSystemLocale();
+ }
try {
let locale = Preferences.get(PREF_SELECTED_LOCALE, null, Ci.nsIPrefLocalizedString);
if (locale)
return locale;
} catch (e) {}
return Preferences.get(PREF_SELECTED_LOCALE, "en-US");
},
--- a/toolkit/modules/Services.jsm
+++ b/toolkit/modules/Services.jsm
@@ -70,17 +70,17 @@ var initTable = [
["console", "@mozilla.org/consoleservice;1", "nsIConsoleService"],
["contentPrefs", "@mozilla.org/content-pref/service;1", "nsIContentPrefService"],
["cookies", "@mozilla.org/cookiemanager;1", "nsICookieManager2"],
["downloads", "@mozilla.org/download-manager;1", "nsIDownloadManager"],
["droppedLinkHandler", "@mozilla.org/content/dropped-link-handler;1", "nsIDroppedLinkHandler"],
["els", "@mozilla.org/eventlistenerservice;1", "nsIEventListenerService"],
["eTLD", "@mozilla.org/network/effective-tld-service;1", "nsIEffectiveTLDService"],
["io", "@mozilla.org/network/io-service;1", "nsIIOService2"],
- ["locale", "@mozilla.org/intl/nslocaleservice;1", "nsILocaleService"],
+ ["locale", "@mozilla.org/intl/localeservice;1", "mozILocaleService"],
["logins", "@mozilla.org/login-manager;1", "nsILoginManager"],
["obs", "@mozilla.org/observer-service;1", "nsIObserverService"],
["perms", "@mozilla.org/permissionmanager;1", "nsIPermissionManager"],
["prompt", "@mozilla.org/embedcomp/prompt-service;1", "nsIPromptService"],
["profiler", "@mozilla.org/tools/profiler;1", "nsIProfiler",
AppConstants.MOZ_GECKO_PROFILER],
["scriptloader", "@mozilla.org/moz/jssubscript-loader;1", "mozIJSSubScriptLoader"],
["scriptSecurityManager", "@mozilla.org/scriptsecuritymanager;1", "nsIScriptSecurityManager"],
--- a/toolkit/modules/tests/xpcshell/test_Services.js
+++ b/toolkit/modules/tests/xpcshell/test_Services.js
@@ -40,17 +40,17 @@ function run_test() {
checkService("DOMRequest", Ci.nsIDOMRequestService);
checkService("domStorageManager", Ci.nsIDOMStorageManager);
checkService("downloads", Ci.nsIDownloadManager);
checkService("droppedLinkHandler", Ci.nsIDroppedLinkHandler);
checkService("eTLD", Ci.nsIEffectiveTLDService);
checkService("focus", Ci.nsIFocusManager);
checkService("io", Ci.nsIIOService);
checkService("io", Ci.nsIIOService2);
- checkService("locale", Ci.nsILocaleService);
+ checkService("locale", Ci.mozILocaleService);
checkService("logins", Ci.nsILoginManager);
checkService("obs", Ci.nsIObserverService);
checkService("perms", Ci.nsIPermissionManager);
checkService("prefs", Ci.nsIPrefBranch);
checkService("prefs", Ci.nsIPrefService);
checkService("prompt", Ci.nsIPromptService);
checkService("scriptSecurityManager", Ci.nsIScriptSecurityManager);
checkService("scriptloader", Ci.mozIJSSubScriptLoader);
--- a/toolkit/mozapps/extensions/AddonManager.jsm
+++ b/toolkit/mozapps/extensions/AddonManager.jsm
@@ -324,18 +324,21 @@ function promiseCallProvider(aProvider,
}
/**
* Gets the currently selected locale for display.
* @return the selected locale or "en-US" if none is selected
*/
function getLocale() {
try {
- if (Services.prefs.getBoolPref(PREF_MATCH_OS_LOCALE))
- return Services.locale.getLocaleComponentForUserAgent();
+ if (Services.prefs.getBoolPref(PREF_MATCH_OS_LOCALE)) {
+ const osPrefs =
+ Cc["@mozilla.org/intl/ospreferences;1"].getService(Ci.mozIOSPreferences);
+ return osPrefs.getSystemLocale();
+ }
} catch (e) { }
try {
let locale = Services.prefs.getComplexValue(PREF_SELECTED_LOCALE,
Ci.nsIPrefLocalizedString);
if (locale)
return locale;
} catch (e) { }