[webkit-changes] [WebKit/WebKit] a14a55: Implement font-variant-alternates matching

Matthieu Dubet noreply at github.com
Wed Oct 26 01:09:20 PDT 2022


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: a14a556da51f33eb6557c948e684c7f783d5da77
      https://github.com/WebKit/WebKit/commit/a14a556da51f33eb6557c948e684c7f783d5da77
  Author: Matthieu Dubet <m_dubet at apple.com>
  Date:   2022-10-26 (Wed, 26 Oct 2022)

  Changed paths:
    M LayoutTests/TestExpectations
    M LayoutTests/platform/gtk/TestExpectations
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/css/CSSFontFace.cpp
    M Source/WebCore/css/CSSFontFace.h
    M Source/WebCore/css/CSSFontFeatureValuesRule.cpp
    M Source/WebCore/css/CSSFontSelector.cpp
    M Source/WebCore/css/CSSFontSelector.h
    M Source/WebCore/css/CSSSegmentedFontFace.cpp
    M Source/WebCore/css/CSSSegmentedFontFace.h
    M Source/WebCore/css/StyleRule.cpp
    M Source/WebCore/css/StyleRule.h
    M Source/WebCore/css/parser/CSSParserImpl.cpp
    M Source/WebCore/platform/graphics/FontCreationContext.h
    A Source/WebCore/platform/graphics/FontFeatureValues.cpp
    A Source/WebCore/platform/graphics/FontFeatureValues.h
    M Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp
    M Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp
    M Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp
    M Source/WebCore/platform/text/TextFlags.cpp
    M Source/WebCore/platform/text/TextFlags.h
    M Source/WebCore/style/RuleSetBuilder.cpp

  Log Message:
  -----------
  Implement font-variant-alternates matching
https://bugs.webkit.org/show_bug.cgi?id=246121
rdar://100830615

Reviewed by Myles C. Maxfield.

There are still some parts of the spec missing:
  * mutiple ident in font-variant-alternates for styleset and character-variant
  * serialization of overwritten declarations
The FontFeatureValues object is reference-counted
because it is fairly large (it contains 6 HashMaps).

* LayoutTests/TestExpectations:
* LayoutTests/platform/gtk/TestExpectations:
* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/css/CSSFontFace.cpp:
(WebCore::CSSFontFace::font):
* Source/WebCore/css/CSSFontFace.h:
* Source/WebCore/css/CSSFontFeatureValuesRule.cpp:
(WebCore::CSSFontFeatureValuesRule::cssText const):
* Source/WebCore/css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::addFontPaletteValuesRule):
(WebCore::CSSFontSelector::addFontFeatureValuesRule):
(WebCore::CSSFontSelector::lookupFontFeatureValues):
(WebCore::CSSFontSelector::fontRangesForFamily):
* Source/WebCore/css/CSSFontSelector.h:
* Source/WebCore/css/CSSSegmentedFontFace.cpp:
(WebCore::CSSSegmentedFontFace::fontRanges):
* Source/WebCore/css/CSSSegmentedFontFace.h:
* Source/WebCore/css/StyleRule.cpp:
(WebCore::StyleRuleFontFeatureValues::StyleRuleFontFeatureValues):
(WebCore::StyleRuleFontFeatureValuesBlock::StyleRuleFontFeatureValuesBlock):
(WebCore::StyleRuleFontFeatureValues::create):
* Source/WebCore/css/StyleRule.h:
* Source/WebCore/css/parser/CSSParserImpl.cpp:
(WebCore::fontFeatureValuesTypeMappings):
(WebCore::CSSParserImpl::consumeFontFeatureValuesRuleBlock):
(WebCore::CSSParserImpl::consumeFontFeatureValuesRule):
* Source/WebCore/platform/graphics/FontCreationContext.h:
(WebCore::FontCreationContextRareData::create):
(WebCore::FontCreationContextRareData::fontFeatureValues const):
(WebCore::FontCreationContextRareData::operator== const):
(WebCore::FontCreationContextRareData::FontCreationContextRareData):
(WebCore::FontCreationContext::FontCreationContext):
(WebCore::FontCreationContext::fontFeatureValues const):
(WebCore::add):
* Source/WebCore/platform/graphics/FontFeatureValues.cpp: Added.
(WebCore::add):
(WebCore::FontFeatureValues::updateOrInsert):
(WebCore::FontFeatureValues::updateOrInsertForType):
(WebCore::operator<<):
* Source/WebCore/platform/graphics/FontFeatureValues.h: Added.
(WebCore::FontFeatureValues::create):
(WebCore::FontFeatureValues::isEmpty const):
(WebCore::FontFeatureValues::operator== const):
(WebCore::FontFeatureValues::operator!= const):
(WebCore::FontFeatureValues::styleset const):
(WebCore::FontFeatureValues::styleset):
(WebCore::FontFeatureValues::stylistic const):
(WebCore::FontFeatureValues::stylistic):
(WebCore::FontFeatureValues::characterVariant const):
(WebCore::FontFeatureValues::characterVariant):
(WebCore::FontFeatureValues::swash const):
(WebCore::FontFeatureValues::swash):
(WebCore::FontFeatureValues::ornaments const):
(WebCore::FontFeatureValues::ornaments):
(WebCore::FontFeatureValues::annotation const):
(WebCore::FontFeatureValues::annotation):
* Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:
(WebCore::preparePlatformFont):
* Source/WebCore/platform/graphics/coretext/FontPlatformDataCoreText.cpp:
* Source/WebCore/platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:
(WebCore::fontFeatures):
* Source/WebCore/platform/text/TextFlags.cpp:
(WebCore::operator<<):
(WebCore::add):
(WebCore::computeFeatureSettingsFromVariants):
(WebCore::reduce): Deleted.
* Source/WebCore/platform/text/TextFlags.h:
* Source/WebCore/style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::addChildRules):
(WebCore::Style::RuleSetBuilder::addMutatingRulesToResolver):

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




More information about the webkit-changes mailing list