Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: f6a37815e1754b841a3badaf7307d2906a68b018
      
https://github.com/WebKit/WebKit/commit/f6a37815e1754b841a3badaf7307d2906a68b018
  Author: Vitor Roriz <[email protected]>
  Date:   2026-03-27 (Fri, 27 Mar 2026)

  Changed paths:
    M Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp
    M Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp
    M Source/WebCore/inspector/InspectorOverlayLabel.cpp
    M Source/WebCore/page/PrintContext.cpp
    M Source/WebCore/platform/graphics/FontCascade.cpp
    M Source/WebCore/platform/graphics/FontCascade.h
    M Source/WebCore/platform/graphics/FontCascadeCache.cpp
    M Source/WebCore/platform/graphics/FontCascadeDescription.cpp
    M Source/WebCore/platform/graphics/FontCascadeDescription.h
    M Source/WebCore/platform/graphics/FontCascadeFonts.cpp
    M Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp
    M Source/WebCore/platform/graphics/harfbuzz/FontDescriptionHarfBuzz.cpp
    M Source/WebCore/platform/graphics/skia/FontDescriptionSkia.cpp
    M Source/WebCore/platform/graphics/win/FontDescriptionWin.cpp
    M Source/WebCore/rendering/RenderListMarker.cpp
    M Source/WebCore/rendering/RenderTextControlMultiLine.cpp
    M Source/WebCore/rendering/RenderTextControlSingleLine.cpp
    M Source/WebCore/rendering/TextAutoSizing.cpp
    M Source/WebCore/style/StyleBuilderCustom.h
    M Source/WebCore/style/StyleBuilderStateInlines.h
    M Source/WebCore/style/StyleResolveForFont.cpp
    M Source/WebCore/style/values/fonts/StyleFontFamily.cpp
    M Source/WebCore/style/values/fonts/StyleFontFamily.h

  Log Message:
  -----------
  FontCascadeDescription: Store FontFamily instead of AtomString
https://bugs.webkit.org/show_bug.cgi?id=310722
rdar://173340379

Reviewed by Elika Etemad and Simon Fraser.

FontCascadeDescription stored font families as plain AtomString, losing the
distinction between generic CSS keywords (serif, monospace) and custom family
names ("serif"). This forced Style::FontFamily::switchOn to do string
comparisons against every known generic name even for custom families.

Store FontFamily (name + FontFamilyKind) instead, so the generic/specified
distinction is carried through from CSS parsing. Move FontFamilyKind and
FontFamily from the style layer to platform/graphics to not incur in a layering
violation.

Platform consumers only read .name, so the mechanical change is adding .name
at each access site. Style::FontFamily wraps WebCore::FontFamily and uses
FontFamilyKind to short-circuit the generic keyword visitor. So no changes
on behavior are expected.

We are also renaming Style::SingleFontFamily to Style::FontFamily.

* Source/WebCore/platform/graphics/FontCascadeDescription.h:
(WebCore::FontFamily::isGeneric const):
(WebCore::FontCascadeDescription::firstFamily const):
(WebCore::FontCascadeDescription::familyAt const):
(WebCore::FontCascadeDescription::families const):
(WebCore::FontCascadeDescription::useFixedDefaultSize const):
(WebCore::FontCascadeDescription::setOneFamily):
(WebCore::FontCascadeDescription::setFamilies):
(WebCore::FontCascadeDescription::operator== const):
* Source/WebCore/platform/graphics/FontCascadeDescription.cpp:
(WebCore::FontCascadeDescription::FontCascadeDescription):
(WebCore::FontCascadeDescription::familiesEqualForTextAutoSizing const):
(WebCore::operator<<):
* Source/WebCore/platform/graphics/FontCascade.cpp:
(WebCore::FontCascade::hasValidAverageCharWidth const):
(WebCore::FontCascade::computeUseBackslashAsYenSymbol const):
* Source/WebCore/platform/graphics/FontCascade.h:
(WebCore::FontCascade::firstFamily const):
(WebCore::FontCascade::familyAt const):
* Source/WebCore/platform/graphics/FontCascadeCache.cpp:
(WebCore::makeFontCascadeCacheKey):
* Source/WebCore/platform/graphics/FontCascadeFonts.cpp:
(WebCore::realizeNextFallback):
(WebCore::opportunisticallyStartFontDataURLLoading):
* Source/WebCore/platform/graphics/cocoa/FontDescriptionCocoa.cpp:
(WebCore::FontCascadeDescription::effectiveFamilyCount const):
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
* Source/WebCore/platform/graphics/harfbuzz/FontDescriptionHarfBuzz.cpp:
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
* Source/WebCore/platform/graphics/skia/FontDescriptionSkia.cpp:
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
* Source/WebCore/platform/graphics/win/FontDescriptionWin.cpp:
(WebCore::FontCascadeDescription::effectiveFamilyAt const):
* Source/WebCore/style/values/fonts/StyleFontFamily.h:
(WebCore::Style::FontFamily::switchOn const):
(WebCore::Style::FontFamilies::FontFamilies):
(WebCore::Style::FontFamilies::first const):
(WebCore::Style::FontFamilies::last const):
* Source/WebCore/style/values/fonts/StyleFontFamily.cpp:
(WebCore::Style::CSSValueConversion<FontFamilies>::operator()):
* Source/WebCore/style/StyleResolveForFont.cpp:
(WebCore::Style::fontFamilyFromUnresolvedFontFamily):
(WebCore::Style::resolveForUnresolvedFont):
* Source/WebCore/style/StyleBuilderStateInlines.h:
(WebCore::Style::BuilderState::setFontDescriptionFamilies):
* Source/WebCore/style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInitialFontFamily):
* 
Source/WebCore/style/computed/StyleComputedStyleProperties+GettersCustomInlines.h:
(WebCore::Style::ComputedStyleProperties::fontFamily const):
* Source/WebCore/rendering/RenderListMarker.cpp:
(WebCore::disclosureMarkerFontCascade):
* Source/WebCore/rendering/RenderTextControlSingleLine.cpp:
(WebCore::RenderTextControlSingleLine::getAverageCharWidth):
(WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
* Source/WebCore/rendering/RenderTextControlMultiLine.cpp:
(WebCore::RenderTextControlMultiLine::getAverageCharWidth):
* Source/WebCore/rendering/TextAutoSizing.cpp:
(WebCore::computeFontHash):
* Source/WebCore/page/PrintContext.cpp:
(WebCore::PrintContext::pageProperty):
* Source/WebCore/inspector/InspectorOverlayLabel.cpp:
(WebCore::systemFont):
* Source/WebCore/html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::State::fontString const):
* Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::textAttributes const):

Canonical link: https://commits.webkit.org/310118@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to