Skip to content

Commit

Permalink
Revert "Cherry-pick ef22954. rdar://117905809"
Browse files Browse the repository at this point in the history
This reverts commit 26d4fc1.

Identifier: 267815.522@safari-7617.1.16.13-branch
  • Loading branch information
MyahCobbs committed Nov 8, 2023
1 parent 26d4fc1 commit 30f502f
Show file tree
Hide file tree
Showing 4 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion Source/WebCore/platform/graphics/FontCascade.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1549,7 +1549,7 @@ const Font* FontCascade::fontForCombiningCharacterSequence(StringView stringView
UChar32 baseCharacter = *stringView.codePoints().begin();
GlyphData baseCharacterGlyphData = glyphDataForCharacter(baseCharacter, false, NormalVariant);

if (!baseCharacterGlyphData.isValid())
if (!baseCharacterGlyphData.glyph)
return nullptr;
return baseCharacterGlyphData.font;
}
Expand Down
12 changes: 6 additions & 6 deletions Source/WebCore/platform/graphics/FontCascadeFonts.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ GlyphData FontCascadeFonts::GlyphPageCacheEntry::glyphDataForCharacter(UChar32 c

void FontCascadeFonts::GlyphPageCacheEntry::setGlyphDataForCharacter(UChar32 character, GlyphData glyphData)
{
ASSERT(!glyphDataForCharacter(character).isValid());
ASSERT(!glyphDataForCharacter(character).glyph);
if (!m_mixedFont) {
m_mixedFont = makeUnique<MixedFontGlyphPage>(m_singleFont.get());
m_singleFont = nullptr;
Expand Down Expand Up @@ -375,7 +375,7 @@ GlyphData FontCascadeFonts::glyphDataForSystemFallback(UChar32 character, const
}

// Keep the system fallback fonts we use alive.
if (fallbackGlyphData.isValid())
if (fallbackGlyphData.glyph)
m_systemFallbackFontSet.add(WTFMove(systemFallbackFont));

return fallbackGlyphData;
Expand Down Expand Up @@ -413,7 +413,7 @@ GlyphData FontCascadeFonts::glyphDataForVariant(UChar32 character, const FontCas
break;

GlyphData data = fontRanges.glyphDataForCharacter(character, policy);
if (!data.isValid())
if (!data.font)
continue;

if (resolvedEmojiPolicy == ResolvedEmojiPolicy::RequireText && data.colorGlyphType == ColorGlyphType::Color)
Expand All @@ -425,7 +425,7 @@ GlyphData FontCascadeFonts::glyphDataForVariant(UChar32 character, const FontCas
policy = ExternalResourceDownloadPolicy::Forbid;
if (fallbackVisibility == FallbackVisibility::Immaterial)
fallbackVisibility = data.font->visibility() == Font::Visibility::Visible ? FallbackVisibility::Visible : FallbackVisibility::Invisible;
if (!loadingResult.isValid() && data.glyph)
if (!loadingResult.font && data.glyph)
loadingResult = data;
continue;
}
Expand Down Expand Up @@ -454,7 +454,7 @@ GlyphData FontCascadeFonts::glyphDataForVariant(UChar32 character, const FontCas
return data;
}

if (loadingResult.isValid())
if (loadingResult.font)
return loadingResult;
// https://drafts.csswg.org/css-fonts-4/#char-handling-issues
// "If a given character is a Private-Use Area Unicode codepoint, user agents must only match font families named in the font-family list that are not generic families. If none of the families named in the font-family list contain a glyph for that codepoint, user agents must display some form of missing glyph symbol for that character rather than attempting installed font fallback for that codepoint."
Expand Down Expand Up @@ -519,7 +519,7 @@ GlyphData FontCascadeFonts::glyphDataForCharacter(UChar32 c, const FontCascadeDe
cacheEntry.setSingleFontPage(glyphPageFromFontRanges(pageNumber, realizeFallbackRangesAt(description, 0)));

GlyphData glyphData = cacheEntry.glyphDataForCharacter(c);
if (!glyphData.isValid()) {
if (!glyphData.font) {
// No glyph, resolve per-character.
ASSERT(variant == NormalVariant);
glyphData = glyphDataForVariant(c, description, variant, resolvedEmojiPolicy);
Expand Down
4 changes: 2 additions & 2 deletions Source/WebCore/platform/graphics/FontRanges.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,8 @@ GlyphData FontRanges::glyphDataForCharacter(UChar32 character, ExternalResourceD
resultFont = font;
} else {
auto glyphData = font->glyphDataForCharacter(character);
if (glyphData.isValid()) {
CheckedPtr glyphDataFont = glyphData.font;
if (glyphData.font) {
auto* glyphDataFont = glyphData.font;
if (glyphDataFont && glyphDataFont->visibility() == Font::Visibility::Visible && resultFont && resultFont->visibility() == Font::Visibility::Invisible)
return GlyphData(glyphData.glyph, &glyphDataFont->invisibleFont());
return glyphData;
Expand Down
2 changes: 1 addition & 1 deletion Source/WebCore/platform/graphics/GlyphPage.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ struct GlyphData {
{
}

bool isValid() const { return font; }
bool isValid() const { return glyph || font; }

Glyph glyph;
ColorGlyphType colorGlyphType;
Expand Down

0 comments on commit 30f502f

Please sign in to comment.