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: case StyleGenericFontFamily::MozEmoji:
MOZ_FALLTHROUGH_ASSERT("Should never appear in a font-family name!"); MOZ_FALLTHROUGH_ASSERT("Should never appear in a font-family name!");
case StyleGenericFontFamily::Serif: case StyleGenericFontFamily::Serif:
aFamilyList.AppendLiteral("serif"); return aFamilyList.AppendLiteral("serif");
break;
case StyleGenericFontFamily::SansSerif: case StyleGenericFontFamily::SansSerif:
aFamilyList.AppendLiteral("sans-serif"); return aFamilyList.AppendLiteral("sans-serif");
break;
case StyleGenericFontFamily::Monospace: case StyleGenericFontFamily::Monospace:
aFamilyList.AppendLiteral("monospace"); return aFamilyList.AppendLiteral("monospace");
break;
case StyleGenericFontFamily::Cursive: case StyleGenericFontFamily::Cursive:
aFamilyList.AppendLiteral("cursive"); return aFamilyList.AppendLiteral("cursive");
break;
case StyleGenericFontFamily::Fantasy: case StyleGenericFontFamily::Fantasy:
aFamilyList.AppendLiteral("fantasy"); return aFamilyList.AppendLiteral("fantasy");
break;
default:
MOZ_ASSERT_UNREACHABLE("Unknown generic font-family!");
break;
} }
MOZ_ASSERT_UNREACHABLE("Unknown generic font-family!");
return aFamilyList.AppendLiteral("serif");
} }
// helper method that converts generic names to the right enum value // 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( /* static */ const char* gfxPlatformFontList::GetGenericName(
StyleGenericFontFamily aGenericType) { 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 // type should be standard generic type at this point
// map generic type to string // map generic type to string
switch (aGenericType) { switch (aGenericType) {
case StyleGenericFontFamily::Serif: case StyleGenericFontFamily::Serif:
return kGeneric_serif; return "serif";
case StyleGenericFontFamily::SansSerif: case StyleGenericFontFamily::SansSerif:
return kGeneric_sans_serif; return "sans-serif";
case StyleGenericFontFamily::Monospace: case StyleGenericFontFamily::Monospace:
return kGeneric_monospace; return "monospace";
case StyleGenericFontFamily::Cursive: case StyleGenericFontFamily::Cursive:
return kGeneric_cursive; return "cursive";
case StyleGenericFontFamily::Fantasy: case StyleGenericFontFamily::Fantasy:
return kGeneric_fantasy; return "fantasy";
default: case StyleGenericFontFamily::MozEmoji:
MOZ_ASSERT_UNREACHABLE("Unknown generic"); return "-moz-emoji";
return nullptr; case StyleGenericFontFamily::None:
break;
} }
MOZ_ASSERT_UNREACHABLE("Unknown generic");
return nullptr;
} }
void gfxPlatformFontList::InitLoader() { void gfxPlatformFontList::InitLoader() {

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

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