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