Bug 1251289 - Fix chrome.i18n.getAcceptLanguages to *not* replace dashes with underscores in language codes, r?kmag
MozReview-Commit-ID: 1plfVzxwq3V
--- a/toolkit/components/extensions/ExtensionUtils.jsm
+++ b/toolkit/components/extensions/ExtensionUtils.jsm
@@ -428,21 +428,17 @@ LocaleData.prototype = {
}
this.messages.set(locale, result);
return result;
},
get acceptLanguages() {
let result = Preferences.get("intl.accept_languages", "", Ci.nsIPrefLocalizedString);
- result = result.split(",");
- result = result.map(lang => {
- return lang.replace(/-/g, "_").trim();
- });
- return result;
+ return result.split(/\s*,\s*/g);
},
get uiLocale() {
// Return the browser locale, but convert it to a Chrome-style
// locale code.
return Locale.getLocale().replace(/-/g, "_");
},
--- a/toolkit/components/extensions/test/mochitest/test_ext_i18n.html
+++ b/toolkit/components/extensions/test/mochitest/test_ext_i18n.html
@@ -223,21 +223,21 @@ add_task(function* test_get_accept_langu
},
});
let win = window.open("file_sample.html");
yield extension.startup();
yield extension.awaitMessage("ready");
- let expectedLangs = ["en_US", "en"];
+ let expectedLangs = ["en-US", "en"];
extension.sendMessage(["expect-results", expectedLangs]);
yield extension.awaitMessage("done");
- expectedLangs = ["en_US", "en", "fr_CA", "fr"];
+ expectedLangs = ["en-US", "en", "fr-CA", "fr"];
SpecialPowers.setCharPref("intl.accept_languages", expectedLangs.toString());
extension.sendMessage(["expect-results", expectedLangs]);
yield extension.awaitMessage("done");
SpecialPowers.clearUserPref("intl.accept_languages");
win.close();
yield extension.unload();