Bug 1394661 - Use user locale instead of system locale for font fallback. r=gandalf

Until Firefox 54, font fallback uses user locale.  Example, OS is Windows 10 JA with JA UI, Firefox uses JA font for fallback even if Firefox is US version.

But since we changed some locale code on Firefox 55 development cycle, there were some regressions such as bug 1346674.  So we changed fallback locale to system locale (instead of Firefox UX locale) for font selection by bug 1348259.

It isn't good for old compatibility, so we should use user locale for font fallback like Firefox 54.  Now we can get user locale by OSPreferences::GetRegionalPrefsLocales, use it for font fallback


MozReview-Commit-ID: 7qwDDeU1ZPt

--HG--
extra : rebase_source : 3a307dd239bea516e117961a944b714bc43a993c
This commit is contained in:
Makoto Kato 2017-08-30 17:33:12 +09:00
Родитель 9f5e4df6f4
Коммит 2a3c054c7b
1 изменённых файлов: 12 добавлений и 4 удалений

Просмотреть файл

@ -64,11 +64,19 @@ nsLanguageAtomService::GetLocaleLanguage()
{
do {
if (!mLocaleLanguage) {
nsAutoCString locale;
OSPreferences::GetInstance()->GetSystemLocale(locale);
AutoTArray<nsCString, 10> regionalPrefsLocales;
if (OSPreferences::GetInstance()->GetRegionalPrefsLocales(
regionalPrefsLocales)) {
// use lowercase for all language atoms
ToLowerCase(regionalPrefsLocales[0]);
mLocaleLanguage = NS_Atomize(regionalPrefsLocales[0]);
} else {
nsAutoCString locale;
OSPreferences::GetInstance()->GetSystemLocale(locale);
ToLowerCase(locale); // use lowercase for all language atoms
mLocaleLanguage = NS_Atomize(locale);
ToLowerCase(locale); // use lowercase for all language atoms
mLocaleLanguage = NS_Atomize(locale);
}
}
} while (0);