Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b0dc25a5f71ee46f06838c3694d65c9489f15be3
      
https://github.com/WebKit/WebKit/commit/b0dc25a5f71ee46f06838c3694d65c9489f15be3
  Author: Vitor Roriz <vitor.ro...@apple.com>
  Date:   2025-08-25 (Mon, 25 Aug 2025)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/accessibility/AXCoreObject.cpp
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp
    M Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm
    M Source/WebCore/css/CSSPrimitiveValueMappings.h
    M Source/WebCore/css/CSSProperties.json
    M Source/WebCore/css/CSSValueKeywords.in
    M Source/WebCore/editing/Editor.cpp
    M Source/WebCore/editing/cocoa/EditingHTMLConverter.mm
    M 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp
    M Source/WebCore/rendering/MarkedText.cpp
    M Source/WebCore/rendering/StyledMarkedText.cpp
    M Source/WebCore/rendering/TextBoxPainter.cpp
    M Source/WebCore/rendering/TextDecorationPainter.cpp
    M Source/WebCore/rendering/TextDecorationPainter.h
    M Source/WebCore/rendering/style/RenderStyle.cpp
    M Source/WebCore/rendering/style/RenderStyle.h
    M Source/WebCore/rendering/style/RenderStyleConstants.cpp
    M Source/WebCore/rendering/style/RenderStyleConstants.h
    M Source/WebCore/rendering/style/RenderStyleInlines.h
    M Source/WebCore/rendering/style/RenderStyleSetters.h
    M Source/WebCore/rendering/style/StyleInheritedData.cpp
    M Source/WebCore/rendering/style/StyleInheritedData.h
    M Source/WebCore/rendering/style/StyleMiscNonInheritedData.cpp
    M Source/WebCore/rendering/style/StyleMiscNonInheritedData.h
    M Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp
    M Source/WebCore/rendering/style/StyleRareNonInheritedData.h
    M Source/WebCore/rendering/svg/SVGTextBoxPainter.cpp
    M Source/WebCore/rendering/svg/SVGTextBoxPainter.h
    M Source/WebCore/style/InlineTextBoxStyle.cpp
    M Source/WebCore/style/StyleAdjuster.cpp
    M Source/WebCore/style/StyleBuilderConverter.h
    M Source/WebCore/style/StyleBuilderCustom.h
    M Source/WebCore/style/StyleExtractorConverter.h
    M Source/WebCore/style/StyleExtractorCustom.h
    M Source/WebCore/style/StyleExtractorSerializer.h
    A Source/WebCore/style/values/text-decoration/StyleTextDecorationLine.cpp
    A Source/WebCore/style/values/text-decoration/StyleTextDecorationLine.h
    M Source/WebKitLegacy/mac/WebView/WebView.mm

  Log Message:
  -----------
  text-decoration-line: Refactor TextDecorationLine into strong type
https://bugs.webkit.org/show_bug.cgi?id=297756
rdar://158897260

Reviewed by Tim Nguyen and Simon Fraser.

text-decoration-line used to be represented on Style as a 
OptionSet<TextDecorationLine>
and TextDecorationLine used to be an enum class.

We are refactoring TextDecorationLine into its own type aligned with other 
strong type changes.
The new type is now defined in StyleTextDecorationLine and it enforces the 
grammar:

text-decoration-line = none | [ underline || overline || line-through || blink 
] | spelling-error | grammar-error

The new underlying representation for it is:

Variant<CSS::Keyword::None, CSS::Keyword::SpellingError, 
CSS::Keyword::GrammarError, OptionSet<TextDecorationLineFlags>> m_value;

This means that TextDecorationLine flags represents now only [ underline || 
overline || line-through || blink ]

* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/accessibility/AXCoreObject.cpp:
(WebCore::LineDecorationStyle::LineDecorationStyle):
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::onStyleChange):
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::hasPlainText const):
(WebCore::AccessibilityRenderObject::hasUnderline const):
* Source/WebCore/accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::textAttributes const):
* Source/WebCore/accessibility/ios/AccessibilityObjectIOS.mm:
(WebCore::attributeStringSetStyle):
* Source/WebCore/css/CSSPrimitiveValueMappings.h:
* Source/WebCore/css/CSSProperties.json:
* Source/WebCore/css/CSSValueKeywords.in:
* Source/WebCore/editing/Editor.cpp:
(WebCore::Editor::fontAttributesAtSelectionStart):
* Source/WebCore/editing/cocoa/EditingHTMLConverter.mm:
(WebCore::updateAttributes):
* 
Source/WebCore/layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::logicalBottomForTextDecorationContent):
(WebCore::Layout::InlineDisplayContentBuilder::collectInkOverflowForTextDecorations):
* Source/WebCore/rendering/MarkedText.cpp:
(WebCore::MarkedText::collectForHighlights):
* Source/WebCore/rendering/StyledMarkedText.cpp:
(WebCore::computeStyleForPseudoElementStyle):
(WebCore::computeStylesForTextDecorations):
* Source/WebCore/rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::paintForegroundAndDecorations):
(WebCore::computedTextDecorationType):
(WebCore::isDecoratingBoxForBackground):
(WebCore::TextBoxPainter::paintBackgroundDecorations):
(WebCore::TextBoxPainter::paintForegroundDecorations):
(WebCore::TextBoxPainter::paintPlatformDocumentMarkers):
* Source/WebCore/rendering/TextDecorationPainter.cpp:
(WebCore::TextDecorationPainter::paintBackgroundDecorations):
(WebCore::collectStylesForRenderer):
(WebCore::TextDecorationPainter::stylesForRenderer):
(WebCore::TextDecorationPainter::textDecorationsInEffectForStyle):
* Source/WebCore/rendering/TextDecorationPainter.h:
(WebCore::TextDecorationPainter::stylesForRenderer):
* Source/WebCore/rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
(WebCore::RenderStyle::NonInheritedFlags::copyNonInheritedFrom):
(WebCore::RenderStyle::changeAffectsVisualOverflow const):
(WebCore::miscDataChangeRequiresRepaint):
(WebCore::RenderStyle::changeRequiresRepaint const):
(WebCore::RenderStyle::changeRequiresRepaintIfText const):
(WebCore::RenderStyle::conservativelyCollectChangedAnimatableProperties const):
(WebCore::RenderStyle::NonInheritedFlags::dumpDifferences const):
(WebCore::RenderStyle::InheritedFlags::dumpDifferences const):
* Source/WebCore/rendering/style/RenderStyle.h:
* Source/WebCore/rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
* Source/WebCore/rendering/style/RenderStyleConstants.h:
* Source/WebCore/rendering/style/RenderStyleInlines.h:
(WebCore::RenderStyle::initialTextDecorationLine):
(WebCore::RenderStyle::initialTextDecorationLineInEffect):
(WebCore::RenderStyle::textDecorationLine const):
(WebCore::RenderStyle::textDecorationLineInEffect const):
* Source/WebCore/rendering/style/RenderStyleSetters.h:
(WebCore::RenderStyle::addToTextDecorationLineInEffect):
(WebCore::RenderStyle::setTextDecorationLine):
(WebCore::RenderStyle::setTextDecorationLineInEffect):
* Source/WebCore/rendering/style/StyleInheritedData.cpp:
(WebCore::StyleInheritedData::StyleInheritedData):
(WebCore::StyleInheritedData::nonFastPathInheritedEqual const):
(WebCore::StyleInheritedData::dumpDifferences const):
* Source/WebCore/rendering/style/StyleInheritedData.h:
* Source/WebCore/rendering/style/StyleMiscNonInheritedData.cpp:
(WebCore::StyleMiscNonInheritedData::StyleMiscNonInheritedData):
(WebCore::StyleMiscNonInheritedData::operator== const):
(WebCore::StyleMiscNonInheritedData::dumpDifferences const):
* Source/WebCore/rendering/style/StyleMiscNonInheritedData.h:
* Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
* Source/WebCore/rendering/style/StyleRareNonInheritedData.h:
* Source/WebCore/rendering/svg/SVGTextBoxPainter.cpp:
(WebCore::SVGTextBoxPainter<TextBoxPath>::paint):
(WebCore::positionOffsetForDecoration):
(WebCore::thicknessForDecoration):
(WebCore::SVGTextBoxPainter<TextBoxPath>::paintDecoration):
(WebCore::SVGTextBoxPainter<TextBoxPath>::paintDecorationWithStyle):
* Source/WebCore/rendering/svg/SVGTextBoxPainter.h:
* Source/WebCore/style/InlineTextBoxStyle.cpp:
(WebCore::minLogicalTopForTextDecorationLineUnder):
(WebCore::maxLogicalBottomForTextDecorationLineUnder):
(WebCore::enclosingRendererWithTextDecoration):
(WebCore::computedInkOverflowForDecorations):
(WebCore::inkOverflowForDecorations):
* Source/WebCore/style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
* Source/WebCore/style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::convertTextDecorationLine): Deleted.
* Source/WebCore/style/StyleBuilderCustom.h:
(WebCore::Style::forwardInheritedValue):
* Source/WebCore/style/StyleExtractorConverter.h:
(WebCore::Style::ExtractorConverter::convertTextTransform):
(WebCore::Style::ExtractorConverter::convertTextDecorationLine): Deleted.
* Source/WebCore/style/StyleExtractorCustom.h:
(WebCore::Style::ExtractorCustom::extractTextDecorationShorthand):
(WebCore::Style::ExtractorCustom::extractTextDecorationShorthandSerialization):
* Source/WebCore/style/StyleExtractorSerializer.h:
(WebCore::Style::ExtractorSerializer::serializeTextDecorationLine): Deleted.
* Source/WebCore/style/values/text-decoration/StyleTextDecorationLine.cpp: 
Added.
(WebCore::Style::TextDecorationLine::addOrReplaceIfNotNone):
(WebCore::Style::CSSValueConversion<TextDecorationLine>::operator):
(WebCore::Style::CSSValueCreation<OptionSet<TextDecorationLineFlags>>::operator):
(WebCore::Style::Serialize<OptionSet<TextDecorationLineFlags>>::operator):
(WebCore::Style::operator<<):
* Source/WebCore/style/values/text-decoration/StyleTextDecorationLine.h: Added.
(WebCore::Style::TextDecorationLine::TextDecorationLine):
(WebCore::Style::TextDecorationLine::isNone const):
(WebCore::Style::TextDecorationLine::isSpellingError const):
(WebCore::Style::TextDecorationLine::isGrammarError const):
(WebCore::Style::TextDecorationLine::isFlags const):
(WebCore::Style::TextDecorationLine::hasUnderline const):
(WebCore::Style::TextDecorationLine::hasOverline const):
(WebCore::Style::TextDecorationLine::hasLineThrough const):
(WebCore::Style::TextDecorationLine::hasBlink const):
(WebCore::Style::TextDecorationLine::containsAny const):
(WebCore::Style::TextDecorationLine::contains const):
(WebCore::Style::TextDecorationLine::remove):
(WebCore::Style::TextDecorationLine::switchOn const):
(WebCore::Style::TextDecorationLine::operator bool const):
* Source/WebKitLegacy/mac/WebView/WebView.mm:
(-[WebView updateTextTouchBar]):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to