mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-02-25 20:01:50 +00:00
Bug 1880561: Return the allowlisted font lists on other platforms r=jfkthame
Differential Revision: https://phabricator.services.mozilla.com/D202020
This commit is contained in:
parent
bb9c8b5fa2
commit
5f99999bb3
@ -1159,6 +1159,17 @@ FontVisibility gfxDWriteFontList::GetVisibilityForFamily(
|
||||
return FontVisibility::User;
|
||||
}
|
||||
|
||||
nsTArray<std::pair<const char**, uint32_t>>
|
||||
gfxDWriteFontList::GetFilteredPlatformFontLists() {
|
||||
nsTArray<std::pair<const char**, uint32_t>> fontLists;
|
||||
|
||||
fontLists.AppendElement(std::make_pair(kBaseFonts, ArrayLength(kBaseFonts)));
|
||||
fontLists.AppendElement(
|
||||
std::make_pair(kLangPackFonts, ArrayLength(kLangPackFonts)));
|
||||
|
||||
return fontLists;
|
||||
}
|
||||
|
||||
void gfxDWriteFontList::AppendFamiliesFromCollection(
|
||||
IDWriteFontCollection* aCollection,
|
||||
nsTArray<fontlist::Family::InitData>& aFamilies,
|
||||
|
@ -436,6 +436,9 @@ class gfxDWriteFontList final : public gfxPlatformFontList {
|
||||
FontFamily& aMatchedFamily)
|
||||
MOZ_REQUIRES(mLock) override;
|
||||
|
||||
nsTArray<std::pair<const char**, uint32_t>> GetFilteredPlatformFontLists()
|
||||
override;
|
||||
|
||||
private:
|
||||
friend class gfxDWriteFontFamily;
|
||||
|
||||
|
@ -1321,6 +1321,55 @@ FontVisibility gfxFT2FontList::GetVisibilityForFamily(
|
||||
return FontVisibility::User;
|
||||
}
|
||||
|
||||
nsTArray<std::pair<const char**, uint32_t>>
|
||||
gfxFT2FontList::GetFilteredPlatformFontLists() {
|
||||
static Device fontVisibilityDevice = Device::Unassigned;
|
||||
if (fontVisibilityDevice == Device::Unassigned) {
|
||||
nsCOMPtr<nsIGfxInfo> gfxInfo = components::GfxInfo::Service();
|
||||
Unused << gfxInfo->GetFontVisibilityDetermination(&fontVisibilityDevice);
|
||||
}
|
||||
|
||||
nsTArray<std::pair<const char**, uint32_t>> fontLists;
|
||||
|
||||
if (fontVisibilityDevice == Device::Android_Unknown_Release_Version ||
|
||||
fontVisibilityDevice == Device::Android_Unknown_Peloton ||
|
||||
fontVisibilityDevice == Device::Android_Unknown_vbox ||
|
||||
fontVisibilityDevice == Device::Android_Unknown_mitv ||
|
||||
fontVisibilityDevice == Device::Android_Chromebook ||
|
||||
fontVisibilityDevice == Device::Android_Amazon) {
|
||||
return fontLists;
|
||||
}
|
||||
|
||||
// Sanity Check
|
||||
if (fontVisibilityDevice != Device::Android_sub_9 &&
|
||||
fontVisibilityDevice != Device::Android_9_11 &&
|
||||
fontVisibilityDevice != Device::Android_12_plus) {
|
||||
return fontLists;
|
||||
}
|
||||
|
||||
fontLists.AppendElement(
|
||||
std::make_pair(kBaseFonts_Android, ArrayLength(kBaseFonts_Android)));
|
||||
|
||||
if (fontVisibilityDevice == Device::Android_sub_9) {
|
||||
fontLists.AppendElement(std::make_pair(kBaseFonts_Android5_8,
|
||||
ArrayLength(kBaseFonts_Android5_8)));
|
||||
} else {
|
||||
fontLists.AppendElement(std::make_pair(
|
||||
kBaseFonts_Android9_Higher, ArrayLength(kBaseFonts_Android9_Higher)));
|
||||
|
||||
if (fontVisibilityDevice == Device::Android_9_11) {
|
||||
fontLists.AppendElement(std::make_pair(
|
||||
kBaseFonts_Android9_11, ArrayLength(kBaseFonts_Android9_11)));
|
||||
} else {
|
||||
fontLists.AppendElement(
|
||||
std::make_pair(kBaseFonts_Android12_Higher,
|
||||
ArrayLength(kBaseFonts_Android12_Higher)));
|
||||
}
|
||||
}
|
||||
|
||||
return fontLists;
|
||||
}
|
||||
|
||||
static void GetName(hb_face_t* aFace, hb_ot_name_id_t aNameID,
|
||||
nsACString& aName) {
|
||||
unsigned int n = 0;
|
||||
|
@ -210,6 +210,9 @@ class gfxFT2FontList final : public gfxPlatformFontList {
|
||||
void CollectInitData(const FontListEntry& aFLE, const nsCString& aPSName,
|
||||
const nsCString& aFullName, StandardFile aStdFile);
|
||||
|
||||
nsTArray<std::pair<const char**, uint32_t>> GetFilteredPlatformFontLists()
|
||||
override;
|
||||
|
||||
/**
|
||||
* Callback passed to AppendFacesFromCachedFaceList to collect family/face
|
||||
* information in either the unshared or shared list we're building.
|
||||
|
@ -853,6 +853,13 @@ bool gfxGDIFontList::FindAndAddFamiliesLocked(
|
||||
aDevToCssSize);
|
||||
}
|
||||
|
||||
nsTArray<std::pair<const char**, uint32_t>>
|
||||
gfxGDIFontList::GetFilteredPlatformFontLists() {
|
||||
nsTArray<std::pair<const char**, uint32_t>> fontLists;
|
||||
|
||||
return fontLists;
|
||||
}
|
||||
|
||||
FontFamily gfxGDIFontList::GetDefaultFontForPlatform(
|
||||
nsPresContext* aPresContext, const gfxFontStyle* aStyle,
|
||||
nsAtom* aLanguage) {
|
||||
|
@ -332,6 +332,9 @@ class gfxGDIFontList final : public gfxPlatformFontList {
|
||||
nsAtom* aLanguage = nullptr)
|
||||
MOZ_REQUIRES(mLock) override;
|
||||
|
||||
nsTArray<std::pair<const char**, uint32_t>> GetFilteredPlatformFontLists()
|
||||
override;
|
||||
|
||||
private:
|
||||
friend class gfxWindowsPlatform;
|
||||
|
||||
|
@ -17,6 +17,9 @@ class gfxMacPlatformFontList final : public CoreTextFontList {
|
||||
gfxPlatformFontList::PlatformFontList());
|
||||
}
|
||||
|
||||
nsTArray<std::pair<const char**, uint32_t>> GetFilteredPlatformFontLists()
|
||||
override;
|
||||
|
||||
static void LookupSystemFont(mozilla::LookAndFeel::FontID aSystemFontID,
|
||||
nsACString& aSystemFontName,
|
||||
gfxFontStyle& aFontStyle);
|
||||
|
@ -252,6 +252,15 @@ FontVisibility gfxMacPlatformFontList::GetVisibilityForFamily(
|
||||
return FontVisibility::User;
|
||||
}
|
||||
|
||||
nsTArray<std::pair<const char**, uint32_t>>
|
||||
gfxMacPlatformFontList::GetFilteredPlatformFontLists() {
|
||||
nsTArray<std::pair<const char**, uint32_t>> fontLists;
|
||||
|
||||
fontLists.AppendElement(std::make_pair(kBaseFonts, ArrayLength(kBaseFonts)));
|
||||
|
||||
return fontLists;
|
||||
}
|
||||
|
||||
bool gfxMacPlatformFontList::DeprecatedFamilyIsAvailable(
|
||||
const nsACString& aName) {
|
||||
NSString* family = GetNSStringForString(NS_ConvertUTF8toUTF16(aName));
|
||||
|
Loading…
x
Reference in New Issue
Block a user