Bug 1344141 - Do not BCP47 canonicalize languages from ChromeRegistry in LocaleService. r?jfkthame
MozReview-Commit-ID: I6xMPhZRUUv
--- a/intl/locale/LocaleService.cpp
+++ b/intl/locale/LocaleService.cpp
@@ -24,17 +24,20 @@ mozilla::StaticRefPtr<LocaleService> Loc
*/
static void
ReadAppLocales(nsTArray<nsCString>& aRetVal)
{
nsAutoCString uaLangTag;
nsCOMPtr<nsIToolkitChromeRegistry> cr =
mozilla::services::GetToolkitChromeRegistryService();
if (cr) {
- cr->GetSelectedLocale(NS_LITERAL_CSTRING("global"), true, uaLangTag);
+ // We don't want to canonicalize the locale from ChromeRegistry into
+ // it's BCP47 form because we will use it for direct language
+ // negotiation and BCP47 changes `ja-JP-mac` into `ja-JP-x-variant-mac`.
+ cr->GetSelectedLocale(NS_LITERAL_CSTRING("global"), false, uaLangTag);
}
if (!uaLangTag.IsEmpty()) {
aRetVal.AppendElement(uaLangTag);
}
if (!uaLangTag.EqualsLiteral("en-US")) {
aRetVal.AppendElement(NS_LITERAL_CSTRING("en-US"));
}