Bug 1674227 - Handle -moz-emoji generic in gfxPlatformFontList. r=jfkthame

And tweak the code so that it doesn't happen next time we add a new
generic font.

Differential Revision: https://phabricator.services.mozilla.com/D95211
This commit is contained in:
Emilio Cobos Álvarez 2020-10-30 10:10:06 +00:00
Родитель 96fa831c85
Коммит 9505500c5e
3 изменённых файлов: 22 добавлений и 30 удалений

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

@ -70,24 +70,18 @@ struct FontFamilyName final {
case StyleGenericFontFamily::MozEmoji:
MOZ_FALLTHROUGH_ASSERT("Should never appear in a font-family name!");
case StyleGenericFontFamily::Serif:
aFamilyList.AppendLiteral("serif");
break;
return aFamilyList.AppendLiteral("serif");
case StyleGenericFontFamily::SansSerif:
aFamilyList.AppendLiteral("sans-serif");
break;
return aFamilyList.AppendLiteral("sans-serif");
case StyleGenericFontFamily::Monospace:
aFamilyList.AppendLiteral("monospace");
break;
return aFamilyList.AppendLiteral("monospace");
case StyleGenericFontFamily::Cursive:
aFamilyList.AppendLiteral("cursive");
break;
return aFamilyList.AppendLiteral("cursive");
case StyleGenericFontFamily::Fantasy:
aFamilyList.AppendLiteral("fantasy");
break;
default:
MOZ_ASSERT_UNREACHABLE("Unknown generic font-family!");
break;
return aFamilyList.AppendLiteral("fantasy");
}
MOZ_ASSERT_UNREACHABLE("Unknown generic font-family!");
return aFamilyList.AppendLiteral("serif");
}
// helper method that converts generic names to the right enum value

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

@ -2076,29 +2076,26 @@ nsAtom* gfxPlatformFontList::GetLangGroup(nsAtom* aLanguage) {
/* static */ const char* gfxPlatformFontList::GetGenericName(
StyleGenericFontFamily aGenericType) {
static const char kGeneric_serif[] = "serif";
static const char kGeneric_sans_serif[] = "sans-serif";
static const char kGeneric_monospace[] = "monospace";
static const char kGeneric_cursive[] = "cursive";
static const char kGeneric_fantasy[] = "fantasy";
// type should be standard generic type at this point
// map generic type to string
switch (aGenericType) {
case StyleGenericFontFamily::Serif:
return kGeneric_serif;
return "serif";
case StyleGenericFontFamily::SansSerif:
return kGeneric_sans_serif;
return "sans-serif";
case StyleGenericFontFamily::Monospace:
return kGeneric_monospace;
return "monospace";
case StyleGenericFontFamily::Cursive:
return kGeneric_cursive;
return "cursive";
case StyleGenericFontFamily::Fantasy:
return kGeneric_fantasy;
default:
MOZ_ASSERT_UNREACHABLE("Unknown generic");
return nullptr;
return "fantasy";
case StyleGenericFontFamily::MozEmoji:
return "-moz-emoji";
case StyleGenericFontFamily::None:
break;
}
MOZ_ASSERT_UNREACHABLE("Unknown generic");
return nullptr;
}
void gfxPlatformFontList::InitLoader() {

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

@ -72,11 +72,12 @@ struct LangGroupFontPrefs {
return &mDefaultCursiveFont;
case StyleGenericFontFamily::Fantasy:
return &mDefaultFantasyFont;
case StyleGenericFontFamily::MozEmoji:
// This shouldn't appear in font family names.
break;
default:
MOZ_ASSERT_UNREACHABLE("invalid font id");
return nullptr;
}
MOZ_ASSERT_UNREACHABLE("invalid font id");
return nullptr;
}
nsStaticAtom* mLangGroup;