WebKit Bugzilla
New
Browse
Search+
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
[patch]
Patch
bug-232729-20211105123642.patch (text/plain), 56.06 KB, created by
Nikos Mouchtaris
on 2021-11-05 12:36:42 PDT
(
hide
)
Description:
Patch
Filename:
MIME Type:
Creator:
Nikos Mouchtaris
Created:
2021-11-05 12:36:42 PDT
Size:
56.06 KB
patch
obsolete
>Subversion Revision: 285316 >diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog >index bd64382f5403906610895dcdac0598604601e5a7..bd711262e7a7e3c543a1232546642157a2387796 100644 >--- a/Source/WebCore/ChangeLog >+++ b/Source/WebCore/ChangeLog >@@ -1,3 +1,108 @@ >+2021-11-04 Nikolaos Mouchtaris <nmouchtaris@apple.com> >+ >+ Rename TextDecoration to TextDecorationLine >+ https://bugs.webkit.org/show_bug.cgi?id=232729 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ Split up patch by Tim Nguyen: https://bugs.webkit.org/show_bug.cgi?id=230083. >+ >+ * accessibility/AccessibilityRenderObject.cpp: >+ (WebCore::AccessibilityRenderObject::hasUnderline const): >+ * accessibility/atk/WebKitAccessibleInterfaceText.cpp: >+ (getAttributeSetForAccessibilityObject): >+ * accessibility/atspi/AccessibilityObjectTextAtspi.cpp: >+ (WebCore::AccessibilityObjectAtspi::textAttributes const): >+ * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: >+ (AXAttributeStringSetStyle): >+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm: >+ (AXAttributeStringSetStyle): >+ * animation/CSSPropertyAnimation.cpp: >+ (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): >+ * css/CSSComputedStyleDeclaration.cpp: >+ (WebCore::renderTextDecorationLineFlagsToCSSValue): >+ (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): >+ (WebCore::renderTextDecorationFlagsToCSSValue): Deleted. >+ * css/CSSPrimitiveValueMappings.h: >+ (WebCore::CSSPrimitiveValue::operator OptionSet<TextDecorationLine> const): >+ (WebCore::CSSPrimitiveValue::operator OptionSet<TextDecoration> const): Deleted. >+ * css/parser/CSSParserFastPaths.cpp: >+ (WebCore::CSSParserFastPaths::isKeywordPropertyID): >+ * css/parser/CSSPropertyParser.cpp: >+ (WebCore::CSSPropertyParser::parseSingleValue): >+ (WebCore::CSSPropertyParser::parseShorthand): >+ * editing/EditingStyle.cpp: >+ (WebCore::HTMLTextDecorationEquivalent::HTMLTextDecorationEquivalent): >+ (WebCore::EditingStyle::init): >+ (WebCore::EditingStyle::styleWithResolvedTextDecorations const): >+ (WebCore::EditingStyle::collapseTextDecorationProperties): >+ (WebCore::textDecorationValueList): >+ (WebCore::EditingStyle::conflictsWithInlineStyleOfElement const): >+ (WebCore::EditingStyle::styleIsPresentInComputedStyleOfNode const): >+ (WebCore::EditingStyle::mergeStyle): >+ (WebCore::reconcileTextDecorationProperties): >+ (WebCore::StyleChange::StyleChange): >+ (WebCore::StyleChange::extractTextStyles): >+ (WebCore::extractPropertiesNotIn): >+ * editing/Editor.cpp: >+ (WebCore::Editor::fontAttributesAtSelectionStart): >+ * editing/cocoa/HTMLConverter.mm: >+ (HTMLConverterCaches::propertyValueForNode): >+ (HTMLConverter::computedAttributesForElement): >+ (WebCore::editingAttributedString): >+ * editing/markup.cpp: >+ (WebCore::serializePreservingVisualAppearanceInternal): >+ * rendering/StyledMarkedText.cpp: >+ (WebCore::resolveStyleForMarkedText): >+ * rendering/TextDecorationPainter.cpp: >+ (WebCore::TextDecorationPainter::TextDecorationPainter): >+ (WebCore::TextDecorationPainter::paintTextDecoration): >+ (WebCore::collectStylesForRenderer): >+ (WebCore::TextDecorationPainter::textDecorationsInEffectForStyle): >+ (WebCore::TextDecorationPainter::stylesForRenderer): >+ * rendering/TextDecorationPainter.h: >+ * rendering/style/RenderStyle.cpp: >+ (WebCore::RenderStyle::RenderStyle): >+ (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline const): >+ * rendering/style/RenderStyle.h: >+ (WebCore::RenderStyle::textDecorationsInEffect const): >+ (WebCore::RenderStyle::textDecorationLine const): >+ (WebCore::RenderStyle::addToTextDecorationsInEffect): >+ (WebCore::RenderStyle::setTextDecorationsInEffect): >+ (WebCore::RenderStyle::setTextDecorationLine): >+ (WebCore::RenderStyle::initialTextDecorationLine): >+ (WebCore::RenderStyle::textDecoration const): Deleted. >+ (WebCore::RenderStyle::setTextDecoration): Deleted. >+ (WebCore::RenderStyle::initialTextDecoration): Deleted. >+ * rendering/style/RenderStyleConstants.cpp: >+ (WebCore::operator<<): >+ * rendering/style/RenderStyleConstants.h: >+ * rendering/style/StyleVisualData.cpp: >+ (WebCore::StyleVisualData::StyleVisualData): >+ * rendering/style/StyleVisualData.h: >+ (WebCore::StyleVisualData::operator== const): >+ * rendering/svg/SVGInlineTextBox.cpp: >+ (WebCore::SVGInlineTextBox::paint): >+ (WebCore::positionOffsetForDecoration): >+ (WebCore::thicknessForDecoration): >+ (WebCore::findRendererDefininingTextDecoration): >+ (WebCore::SVGInlineTextBox::paintDecoration): >+ (WebCore::SVGInlineTextBox::paintDecorationWithStyle): >+ * rendering/svg/SVGInlineTextBox.h: >+ * style/InlineTextBoxStyle.cpp: >+ (WebCore::minLogicalTopForTextDecorationLine): >+ (WebCore::maxLogicalBottomForTextDecorationLine): >+ (WebCore::enclosingRendererWithTextDecoration): >+ (WebCore::computeUnderlineOffset): >+ (WebCore::visualOverflowForDecorations): >+ * style/PropertyCascade.cpp: >+ (WebCore::Style::shouldApplyPropertyInParseOrder): >+ * style/StyleAdjuster.cpp: >+ (WebCore::Style::Adjuster::adjust const): >+ * style/StyleBuilderConverter.h: >+ (WebCore::Style::BuilderConverter::convertTextDecorationLine): >+ (WebCore::Style::BuilderConverter::convertTextDecoration): Deleted. >+ > 2021-11-04 Nikolaos Mouchtaris <nmouchtaris@apple.com> > > Make scrollbar orientation an enum class >diff --git a/Source/WebKitLegacy/mac/ChangeLog b/Source/WebKitLegacy/mac/ChangeLog >index 4f8c691a858dccc3ba8f59324a16e6229345b319..80cac808f52e1426407028193f10be718f076a21 100644 >--- a/Source/WebKitLegacy/mac/ChangeLog >+++ b/Source/WebKitLegacy/mac/ChangeLog >@@ -1,3 +1,13 @@ >+2021-11-04 Nikolaos Mouchtaris <nmouchtaris@apple.com> >+ >+ Rename TextDecoration to TextDecorationLine >+ https://bugs.webkit.org/show_bug.cgi?id=232729 >+ >+ Reviewed by NOBODY (OOPS!). >+ >+ * WebView/WebView.mm: >+ (-[WebView updateTextTouchBar]): >+ > 2021-11-03 Chris Dumez <cdumez@apple.com> > > Unreviewed iOS build fix. >diff --git a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp b/Source/WebCore/accessibility/AccessibilityRenderObject.cpp >index 3e56939c6acc65d8e8d54ced4897e7c6acdf0e83..099fb154fbea327b6ddc859726a680a9993f04cf 100644 >--- a/Source/WebCore/accessibility/AccessibilityRenderObject.cpp >+++ b/Source/WebCore/accessibility/AccessibilityRenderObject.cpp >@@ -3884,7 +3884,7 @@ bool AccessibilityRenderObject::hasUnderline() const > if (!m_renderer) > return false; > >- return m_renderer->style().textDecorationsInEffect().contains(TextDecoration::Underline); >+ return m_renderer->style().textDecorationsInEffect().contains(TextDecorationLine::Underline); > } > > String AccessibilityRenderObject::nameForMSAA() const >diff --git a/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp b/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp >index 8a87ac3b1b20d7e73d13603e1227b3eb11ab58a0..a3d7e821fa37cb205d3f36be863eea08a35b7a70 100644 >--- a/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp >+++ b/Source/WebCore/accessibility/atk/WebKitAccessibleInterfaceText.cpp >@@ -164,11 +164,11 @@ static AtkAttributeSet* getAttributeSetForAccessibilityObject(const Accessibilit > result = addToAtkAttributeSet(result, atk_text_attribute_get_name(ATK_TEXT_ATTR_JUSTIFICATION), "fill"); > } > >- result = addToAtkAttributeSet(result, atk_text_attribute_get_name(ATK_TEXT_ATTR_UNDERLINE), (style->textDecoration() & TextDecoration::Underline) ? "single" : "none"); >+ result = addToAtkAttributeSet(result, atk_text_attribute_get_name(ATK_TEXT_ATTR_UNDERLINE), (style->textDecoration() & TextDecorationLine::Underline) ? "single" : "none"); > > result = addToAtkAttributeSet(result, atk_text_attribute_get_name(ATK_TEXT_ATTR_STYLE), style->fontCascade().italic() ? "italic" : "normal"); > >- result = addToAtkAttributeSet(result, atk_text_attribute_get_name(ATK_TEXT_ATTR_STRIKETHROUGH), (style->textDecoration() & TextDecoration::LineThrough) ? "true" : "false"); >+ result = addToAtkAttributeSet(result, atk_text_attribute_get_name(ATK_TEXT_ATTR_STRIKETHROUGH), (style->textDecoration() & TextDecorationLine::LineThrough) ? "true" : "false"); > > result = addToAtkAttributeSet(result, atk_text_attribute_get_name(ATK_TEXT_ATTR_INVISIBLE), (style->visibility() == Visibility::Hidden) ? "true" : "false"); > >diff --git a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm >index ae65e49aad06bbfa31b8dc918b05000ef470af63..37d6cc62a956184815d4ba6a49c9e715db29fcf8 100644 >--- a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm >+++ b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm >@@ -591,7 +591,7 @@ static void AXAttributeStringSetStyle(NSMutableAttributedString* attrString, Ren > AXAttributeStringSetFont(attrString, style.fontCascade().primaryFont().getCTFont(), range); > > auto decor = style.textDecorationsInEffect(); >- if (decor & TextDecoration::Underline) >+ if (decor & TextDecorationLine::Underline) > AXAttributeStringSetNumber(attrString, UIAccessibilityTokenUnderline, @YES, range); > > // Add code context if this node is within a <code> block. >diff --git a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm >index 118ae6d60adfeeda2d107c7a8298f154588db45e..d06d7d3e01ea374116ef8ff77f36e0e84f9f513b 100644 >--- a/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm >+++ b/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm >@@ -868,34 +868,34 @@ static void AXAttributeStringSetStyle(NSMutableAttributedString* attrString, Ren > AXAttributeStringSetNumber(attrString, NSAccessibilityShadowTextAttribute, @YES, range); > else > [attrString removeAttribute:NSAccessibilityShadowTextAttribute range:range]; >- >+ > // set underline and strikethrough > auto decor = style.textDecorationsInEffect(); >- if (!(decor & TextDecoration::Underline)) { >+ if (!(decor & TextDecorationLine::Underline)) { > [attrString removeAttribute:NSAccessibilityUnderlineTextAttribute range:range]; > [attrString removeAttribute:NSAccessibilityUnderlineColorTextAttribute range:range]; > } >- >- if (!(decor & TextDecoration::LineThrough)) { >+ >+ if (!(decor & TextDecorationLine::LineThrough)) { > [attrString removeAttribute:NSAccessibilityStrikethroughTextAttribute range:range]; > [attrString removeAttribute:NSAccessibilityStrikethroughColorTextAttribute range:range]; > } > >- if (decor & TextDecoration::Underline || decor & TextDecoration::LineThrough) { >+ if (decor & TextDecorationLine::Underline || decor & TextDecorationLine::LineThrough) { > // FIXME: Should the underline style be reported here? > auto decorationStyles = TextDecorationPainter::stylesForRenderer(*renderer, decor); > >- if (decor & TextDecoration::Underline) { >+ if (decor & TextDecorationLine::Underline) { > AXAttributeStringSetNumber(attrString, NSAccessibilityUnderlineTextAttribute, @YES, range); > AXAttributeStringSetColor(attrString, NSAccessibilityUnderlineColorTextAttribute, cocoaColor(decorationStyles.underlineColor).get(), range); > } >- >- if (decor & TextDecoration::LineThrough) { >+ >+ if (decor & TextDecorationLine::LineThrough) { > AXAttributeStringSetNumber(attrString, NSAccessibilityStrikethroughTextAttribute, @YES, range); > AXAttributeStringSetColor(attrString, NSAccessibilityStrikethroughColorTextAttribute, cocoaColor(decorationStyles.linethroughColor).get(), range); > } > } >- >+ > // Indicate background highlighting. > for (Node* node = renderer->node(); node; node = node->parentNode()) { > if (node->hasTagName(HTMLNames::markTag)) >diff --git a/Source/WebCore/animation/CSSPropertyAnimation.cpp b/Source/WebCore/animation/CSSPropertyAnimation.cpp >index 08ae597ce4b582e88706eab983f22dc28b5c69a5..d72be74abe9a90118db3daaa0832981862a7a1c3 100644 >--- a/Source/WebCore/animation/CSSPropertyAnimation.cpp >+++ b/Source/WebCore/animation/CSSPropertyAnimation.cpp >@@ -2604,7 +2604,7 @@ CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap() > new DiscretePropertyWrapper<RubyPosition>(CSSPropertyWebkitRubyPosition, &RenderStyle::rubyPosition, &RenderStyle::setRubyPosition), > new DiscretePropertyWrapper<TableLayoutType>(CSSPropertyTableLayout, &RenderStyle::tableLayout, &RenderStyle::setTableLayout), > new DiscretePropertyWrapper<TextAlignMode>(CSSPropertyTextAlign, &RenderStyle::textAlign, &RenderStyle::setTextAlign), >- new DiscretePropertyWrapper<OptionSet<TextDecoration>>(CSSPropertyTextDecorationLine, &RenderStyle::textDecoration, &RenderStyle::setTextDecoration), >+ new DiscretePropertyWrapper<OptionSet<TextDecorationLine>>(CSSPropertyTextDecorationLine, &RenderStyle::textDecoration, &RenderStyle::setTextDecoration), > new DiscretePropertyWrapper<TextDecorationStyle>(CSSPropertyTextDecorationStyle, &RenderStyle::textDecorationStyle, &RenderStyle::setTextDecorationStyle), > new DiscretePropertyWrapper<const Color&>(CSSPropertyWebkitTextEmphasisColor, &RenderStyle::textEmphasisColor, &RenderStyle::setTextEmphasisColor), > new DiscretePropertyWrapper<OptionSet<TextEmphasisPosition>>(CSSPropertyWebkitTextEmphasisPosition, &RenderStyle::textEmphasisPosition, &RenderStyle::setTextEmphasisPosition), >diff --git a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >index 2f2e089bab1465746cf733f66d91b5510ab6d1fc..0064adc50c07df0b8cf1e7c83e525ae428a61ee7 100644 >--- a/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >+++ b/Source/WebCore/css/CSSComputedStyleDeclaration.cpp >@@ -1595,16 +1595,16 @@ static Ref<CSSValue> touchActionFlagsToCSSValue(OptionSet<TouchAction> touchActi > return list; > } > >-static Ref<CSSValue> renderTextDecorationFlagsToCSSValue(OptionSet<TextDecoration> textDecoration) >+static Ref<CSSValue> renderTextDecorationLineFlagsToCSSValue(OptionSet<TextDecorationLine> textDecorationLine) > { > auto& cssValuePool = CSSValuePool::singleton(); > // Blink value is ignored. > auto list = CSSValueList::createSpaceSeparated(); >- if (textDecoration & TextDecoration::Underline) >+ if (textDecorationLine & TextDecorationLine::Underline) > list->append(cssValuePool.createIdentifierValue(CSSValueUnderline)); >- if (textDecoration & TextDecoration::Overline) >+ if (textDecorationLine & TextDecorationLine::Overline) > list->append(cssValuePool.createIdentifierValue(CSSValueOverline)); >- if (textDecoration & TextDecoration::LineThrough) >+ if (textDecorationLine & TextDecorationLine::LineThrough) > list->append(cssValuePool.createIdentifierValue(CSSValueLineThrough)); > > if (!list->length()) >@@ -3254,7 +3254,7 @@ RefPtr<CSSValue> ComputedStyleExtractor::valueForPropertyInStyle(const RenderSty > case CSSPropertyTextAlign: > return cssValuePool.createValue(style.textAlign()); > case CSSPropertyTextDecoration: >- return renderTextDecorationFlagsToCSSValue(style.textDecoration()); >+ return renderTextDecorationLineFlagsToCSSValue(style.textDecoration()); > #if ENABLE(CSS3_TEXT) > case CSSPropertyWebkitTextAlignLast: > return cssValuePool.createValue(style.textAlignLast()); >@@ -3264,7 +3264,7 @@ RefPtr<CSSValue> ComputedStyleExtractor::valueForPropertyInStyle(const RenderSty > case CSSPropertyWebkitTextDecoration: > return getCSSPropertyValuesForShorthandProperties(webkitTextDecorationShorthand()); > case CSSPropertyTextDecorationLine: >- return renderTextDecorationFlagsToCSSValue(style.textDecoration()); >+ return renderTextDecorationLineFlagsToCSSValue(style.textDecoration()); > case CSSPropertyTextDecorationStyle: > return renderTextDecorationStyleFlagsToCSSValue(style.textDecorationStyle()); > case CSSPropertyTextDecorationColor: >@@ -3280,7 +3280,7 @@ RefPtr<CSSValue> ComputedStyleExtractor::valueForPropertyInStyle(const RenderSty > case CSSPropertyTextDecorationThickness: > return textDecorationThicknessToCSSValue(style.textDecorationThickness()); > case CSSPropertyWebkitTextDecorationsInEffect: >- return renderTextDecorationFlagsToCSSValue(style.textDecorationsInEffect()); >+ return renderTextDecorationLineFlagsToCSSValue(style.textDecorationsInEffect()); > case CSSPropertyWebkitTextFillColor: > return currentColorOrValidColor(&style, style.textFillColor()); > case CSSPropertyWebkitTextEmphasisColor: >diff --git a/Source/WebCore/css/CSSPrimitiveValueMappings.h b/Source/WebCore/css/CSSPrimitiveValueMappings.h >index f64bb164b963ec1828d04e97629c53e24c07c099..6ed6091be1bc48a69beb4562c7a06b5e30944f70 100644 >--- a/Source/WebCore/css/CSSPrimitiveValueMappings.h >+++ b/Source/WebCore/css/CSSPrimitiveValueMappings.h >@@ -2412,27 +2412,27 @@ template<> inline CSSPrimitiveValue::operator TextJustify() const > } > #endif // CSS3_TEXT > >-template<> inline CSSPrimitiveValue::operator OptionSet<TextDecoration>() const >+template<> inline CSSPrimitiveValue::operator OptionSet<TextDecorationLine>() const > { > ASSERT(isValueID()); > > switch (m_value.valueID) { > case CSSValueNone: >- return OptionSet<TextDecoration> { }; >+ return OptionSet<TextDecorationLine> { }; > case CSSValueUnderline: >- return TextDecoration::Underline; >+ return TextDecorationLine::Underline; > case CSSValueOverline: >- return TextDecoration::Overline; >+ return TextDecorationLine::Overline; > case CSSValueLineThrough: >- return TextDecoration::LineThrough; >+ return TextDecorationLine::LineThrough; > case CSSValueBlink: >- return TextDecoration::Blink; >+ return TextDecorationLine::Blink; > default: > break; > } > > ASSERT_NOT_REACHED(); >- return OptionSet<TextDecoration> { }; >+ return OptionSet<TextDecorationLine> { }; > } > > template<> inline CSSPrimitiveValue::operator TextDecorationStyle() const >diff --git a/Source/WebCore/editing/Editor.cpp b/Source/WebCore/editing/Editor.cpp >index c6710227ddd14f506d8f520c0e896cc9cd4e69db..9fbe1b60c3d60464271fd674ff35052eec4b8b75 100644 >--- a/Source/WebCore/editing/Editor.cpp >+++ b/Source/WebCore/editing/Editor.cpp >@@ -4097,9 +4097,9 @@ FontAttributes Editor::fontAttributesAtSelectionStart() > } > } else { > auto decoration = style->textDecorationsInEffect(); >- if (decoration & TextDecoration::LineThrough) >+ if (decoration & TextDecorationLine::LineThrough) > attributes.hasStrikeThrough = true; >- if (decoration & TextDecoration::Underline) >+ if (decoration & TextDecorationLine::Underline) > attributes.hasUnderline = true; > } > >diff --git a/Source/WebCore/editing/cocoa/HTMLConverter.mm b/Source/WebCore/editing/cocoa/HTMLConverter.mm >index d944d984dc3f8e1939f1fc743f8a940a177a1e2e..0179cac59aebd51af1f55248fa045e02216e6405 100644 >--- a/Source/WebCore/editing/cocoa/HTMLConverter.mm >+++ b/Source/WebCore/editing/cocoa/HTMLConverter.mm >@@ -2380,9 +2380,9 @@ AttributedString editingAttributedString(const SimpleRange& range, IncludeImages > if (!renderer) > continue; > auto& style = renderer->style(); >- if (style.textDecorationsInEffect() & TextDecoration::Underline) >+ if (style.textDecorationsInEffect() & TextDecorationLine::Underline) > [attrs setObject:[NSNumber numberWithInteger:NSUnderlineStyleSingle] forKey:NSUnderlineStyleAttributeName]; >- if (style.textDecorationsInEffect() & TextDecoration::LineThrough) >+ if (style.textDecorationsInEffect() & TextDecorationLine::LineThrough) > [attrs setObject:[NSNumber numberWithInteger:NSUnderlineStyleSingle] forKey:NSStrikethroughStyleAttributeName]; > if (auto font = style.fontCascade().primaryFont().getCTFont()) > [attrs setObject:toNSFont(font) forKey:NSFontAttributeName]; >diff --git a/Source/WebCore/rendering/StyledMarkedText.cpp b/Source/WebCore/rendering/StyledMarkedText.cpp >index 047f02a179fa5613bd83a6f57979bf6b140426e1..db2c363cfe157366f7fbe2aa7a266de2fb9f8e5c 100644 >--- a/Source/WebCore/rendering/StyledMarkedText.cpp >+++ b/Source/WebCore/rendering/StyledMarkedText.cpp >@@ -57,15 +57,15 @@ static StyledMarkedText resolveStyleForMarkedText(const MarkedText& markedText, > auto decorationStyle = renderStyle->textDecorationStyle(); > auto decorations = renderStyle->textDecorationsInEffect(); > >- if (decorations.contains(TextDecoration::Underline)) { >+ if (decorations.contains(TextDecorationLine::Underline)) { > style.textDecorationStyles.underlineColor = color; > style.textDecorationStyles.underlineStyle = decorationStyle; > } >- if (decorations.contains(TextDecoration::Overline)) { >+ if (decorations.contains(TextDecorationLine::Overline)) { > style.textDecorationStyles.overlineColor = color; > style.textDecorationStyles.overlineStyle = decorationStyle; > } >- if (decorations.contains(TextDecoration::LineThrough)) { >+ if (decorations.contains(TextDecorationLine::LineThrough)) { > style.textDecorationStyles.linethroughColor = color; > style.textDecorationStyles.linethroughStyle = decorationStyle; > } >diff --git a/Source/WebCore/rendering/TextDecorationPainter.cpp b/Source/WebCore/rendering/TextDecorationPainter.cpp >index ea09006fed2688257e802a7e9ec73804be50e114..08429444bac657b5f3e0686fcf2da1961a554248 100644 >--- a/Source/WebCore/rendering/TextDecorationPainter.cpp >+++ b/Source/WebCore/rendering/TextDecorationPainter.cpp >@@ -198,7 +198,7 @@ bool TextDecorationPainter::Styles::operator==(const Styles& other) const > && underlineStyle == other.underlineStyle && overlineStyle == other.overlineStyle && linethroughStyle == other.linethroughStyle; > } > >-TextDecorationPainter::TextDecorationPainter(GraphicsContext& context, OptionSet<TextDecoration> decorations, const RenderText& renderer, bool isFirstLine, const FontCascade& font, std::optional<Styles> styles) >+TextDecorationPainter::TextDecorationPainter(GraphicsContext& context, OptionSet<TextDecorationLine> decorations, const RenderText& renderer, bool isFirstLine, const FontCascade& font, std::optional<Styles> styles) > : m_context { context } > , m_decorations { decorations } > , m_wavyOffset { wavyOffsetFromDecoration() } >@@ -215,14 +215,14 @@ void TextDecorationPainter::paintTextDecoration(const TextRun& textRun, const Fl > float textDecorationThickness = m_lineStyle.textDecorationThickness().resolve(m_lineStyle.computedFontSize(), fontMetrics); > FloatPoint localOrigin = boxOrigin; > >- auto paintDecoration = [&] (TextDecoration decoration, TextDecorationStyle style, const Color& color, const FloatRect& rect) { >+ auto paintDecoration = [&] (TextDecorationLine decoration, TextDecorationStyle style, const Color& color, const FloatRect& rect) { > m_context.setStrokeColor(color); > > auto strokeStyle = textDecorationStyleToStrokeStyle(style); > > if (style == TextDecorationStyle::Wavy) > strokeWavyTextDecoration(m_context, rect, m_lineStyle.computedFontPixelSize()); >- else if (decoration == TextDecoration::Underline || decoration == TextDecoration::Overline) { >+ else if (decoration == TextDecorationLine::Underline || decoration == TextDecorationLine::Overline) { > if ((m_lineStyle.textDecorationSkipInk() == TextDecorationSkipInk::Auto || m_lineStyle.textDecorationSkipInk() == TextDecorationSkipInk::All) && m_isHorizontal) { > if (!m_context.paintingDisabled()) { > FloatRect underlineBoundingBox = m_context.computeUnderlineBoundsForText(rect, m_isPrinting); >@@ -237,14 +237,14 @@ void TextDecorationPainter::paintTextDecoration(const TextRun& textRun, const Fl > m_context.drawLineForText(rect, m_isPrinting, style == TextDecorationStyle::Double, strokeStyle); > } > } else { >- ASSERT(decoration == TextDecoration::LineThrough); >+ ASSERT(decoration == TextDecorationLine::LineThrough); > m_context.drawLineForText(rect, m_isPrinting, style == TextDecorationStyle::Double, strokeStyle); > } > }; > >- bool areLinesOpaque = !m_isPrinting && (!m_decorations.contains(TextDecoration::Underline) || m_styles.underlineColor.isOpaque()) >- && (!m_decorations.contains(TextDecoration::Overline) || m_styles.overlineColor.isOpaque()) >- && (!m_decorations.contains(TextDecoration::LineThrough) || m_styles.linethroughColor.isOpaque()); >+ bool areLinesOpaque = !m_isPrinting && (!m_decorations.contains(TextDecorationLine::Underline) || m_styles.underlineColor.isOpaque()) >+ && (!m_decorations.contains(TextDecorationLine::Overline) || m_styles.overlineColor.isOpaque()) >+ && (!m_decorations.contains(TextDecorationLine::LineThrough) || m_styles.linethroughColor.isOpaque()); > > float extraOffset = 0; > bool clipping = !areLinesOpaque && m_shadow && m_shadow->next(); >@@ -285,28 +285,28 @@ void TextDecorationPainter::paintTextDecoration(const TextRun& textRun, const Fl > } > > // These decorations should match the visual overflows computed in visualOverflowForDecorations(). >- if (m_decorations.contains(TextDecoration::Underline)) { >+ if (m_decorations.contains(TextDecorationLine::Underline)) { > float textDecorationBaseFontSize = 16; > auto defaultGap = m_lineStyle.computedFontSize() / textDecorationBaseFontSize; > float offset = computeUnderlineOffset(m_lineStyle.textUnderlinePosition(), m_lineStyle.textUnderlineOffset(), m_lineStyle.fontMetrics(), m_textBox, defaultGap); > float wavyOffset = m_styles.underlineStyle == TextDecorationStyle::Wavy ? m_wavyOffset : 0; > FloatRect rect(localOrigin, FloatSize(m_width, textDecorationThickness)); > rect.move(0, offset + wavyOffset); >- paintDecoration(TextDecoration::Underline, m_styles.underlineStyle, m_styles.underlineColor, rect); >+ paintDecoration(TextDecorationLine::Underline, m_styles.underlineStyle, m_styles.underlineColor, rect); > } >- if (m_decorations.contains(TextDecoration::Overline)) { >+ if (m_decorations.contains(TextDecorationLine::Overline)) { > float wavyOffset = m_styles.overlineStyle == TextDecorationStyle::Wavy ? m_wavyOffset : 0; > FloatRect rect(localOrigin, FloatSize(m_width, textDecorationThickness)); > float autoTextDecorationThickness = TextDecorationThickness::createWithAuto().resolve(m_lineStyle.computedFontSize(), fontMetrics); > rect.move(0, autoTextDecorationThickness - textDecorationThickness - wavyOffset); >- paintDecoration(TextDecoration::Overline, m_styles.overlineStyle, m_styles.overlineColor, rect); >+ paintDecoration(TextDecorationLine::Overline, m_styles.overlineStyle, m_styles.overlineColor, rect); > } >- if (m_decorations.contains(TextDecoration::LineThrough)) { >+ if (m_decorations.contains(TextDecorationLine::LineThrough)) { > FloatRect rect(localOrigin, FloatSize(m_width, textDecorationThickness)); > float autoTextDecorationThickness = TextDecorationThickness::createWithAuto().resolve(m_lineStyle.computedFontSize(), fontMetrics); > auto center = 2 * fontMetrics.floatAscent() / 3 + autoTextDecorationThickness / 2; > rect.move(0, center - textDecorationThickness / 2); >- paintDecoration(TextDecoration::LineThrough, m_styles.linethroughStyle, m_styles.linethroughColor, rect); >+ paintDecoration(TextDecorationLine::LineThrough, m_styles.linethroughStyle, m_styles.linethroughColor, rect); > } > } while (shadow); > >@@ -316,24 +316,24 @@ void TextDecorationPainter::paintTextDecoration(const TextRun& textRun, const Fl > m_context.clearShadow(); > } > >-static void collectStylesForRenderer(TextDecorationPainter::Styles& result, const RenderObject& renderer, OptionSet<TextDecoration> remainingDecorations, bool firstLineStyle, PseudoId pseudoId) >+static void collectStylesForRenderer(TextDecorationPainter::Styles& result, const RenderObject& renderer, OptionSet<TextDecorationLine> remainingDecorations, bool firstLineStyle, PseudoId pseudoId) > { >- auto extractDecorations = [&] (const RenderStyle& style, OptionSet<TextDecoration> decorations) { >+ auto extractDecorations = [&] (const RenderStyle& style, OptionSet<TextDecorationLine> decorations) { > auto color = TextDecorationPainter::decorationColor(style); > auto decorationStyle = style.textDecorationStyle(); > >- if (decorations.contains(TextDecoration::Underline)) { >- remainingDecorations.remove(TextDecoration::Underline); >+ if (decorations.contains(TextDecorationLine::Underline)) { >+ remainingDecorations.remove(TextDecorationLine::Underline); > result.underlineColor = color; > result.underlineStyle = decorationStyle; > } >- if (decorations.contains(TextDecoration::Overline)) { >- remainingDecorations.remove(TextDecoration::Overline); >+ if (decorations.contains(TextDecorationLine::Overline)) { >+ remainingDecorations.remove(TextDecorationLine::Overline); > result.overlineColor = color; > result.overlineStyle = decorationStyle; > } >- if (decorations.contains(TextDecoration::LineThrough)) { >- remainingDecorations.remove(TextDecoration::LineThrough); >+ if (decorations.contains(TextDecorationLine::LineThrough)) { >+ remainingDecorations.remove(TextDecorationLine::LineThrough); > result.linethroughColor = color; > result.linethroughStyle = decorationStyle; > } >@@ -376,19 +376,19 @@ Color TextDecorationPainter::decorationColor(const RenderStyle& style) > return style.visitedDependentColorWithColorFilter(CSSPropertyTextDecorationColor); > } > >-OptionSet<TextDecoration> TextDecorationPainter::textDecorationsInEffectForStyle(const TextDecorationPainter::Styles& style) >+OptionSet<TextDecorationLine> TextDecorationPainter::textDecorationsInEffectForStyle(const TextDecorationPainter::Styles& style) > { >- OptionSet<TextDecoration> decorations; >+ OptionSet<TextDecorationLine> decorations; > if (style.underlineColor.isValid()) >- decorations.add(TextDecoration::Underline); >+ decorations.add(TextDecorationLine::Underline); > if (style.overlineColor.isValid()) >- decorations.add(TextDecoration::Overline); >+ decorations.add(TextDecorationLine::Overline); > if (style.linethroughColor.isValid()) >- decorations.add(TextDecoration::LineThrough); >+ decorations.add(TextDecorationLine::LineThrough); > return decorations; > }; > >-auto TextDecorationPainter::stylesForRenderer(const RenderObject& renderer, OptionSet<TextDecoration> requestedDecorations, bool firstLineStyle, PseudoId pseudoId) -> Styles >+auto TextDecorationPainter::stylesForRenderer(const RenderObject& renderer, OptionSet<TextDecorationLine> requestedDecorations, bool firstLineStyle, PseudoId pseudoId) -> Styles > { > Styles result; > collectStylesForRenderer(result, renderer, requestedDecorations, false, pseudoId); >diff --git a/Source/WebCore/rendering/TextDecorationPainter.h b/Source/WebCore/rendering/TextDecorationPainter.h >index eaad4083510f83d8c4d4b2a9d227c5295a7df143..e741a59977bfb3a92f4374b91985e1316b81ca51 100644 >--- a/Source/WebCore/rendering/TextDecorationPainter.h >+++ b/Source/WebCore/rendering/TextDecorationPainter.h >@@ -44,7 +44,7 @@ class TextRun; > class TextDecorationPainter { > public: > struct Styles; >- TextDecorationPainter(GraphicsContext&, OptionSet<TextDecoration> decorations, const RenderText&, bool isFirstLine, const FontCascade&, std::optional<Styles> = std::nullopt); >+ TextDecorationPainter(GraphicsContext&, OptionSet<TextDecorationLine> decorations, const RenderText&, bool isFirstLine, const FontCascade&, std::optional<Styles> = std::nullopt); > > void setTextBox(InlineIterator::TextBoxIterator textBox) { m_textBox = textBox; } > void setIsHorizontal(bool isHorizontal) { m_isHorizontal = isHorizontal; } >@@ -66,12 +66,12 @@ public: > TextDecorationStyle linethroughStyle; > }; > static Color decorationColor(const RenderStyle&); >- static OptionSet<TextDecoration> textDecorationsInEffectForStyle(const Styles&); >- static Styles stylesForRenderer(const RenderObject&, OptionSet<TextDecoration> requestedDecorations, bool firstLineStyle = false, PseudoId = PseudoId::None); >+ static OptionSet<TextDecorationLine> textDecorationsInEffectForStyle(const Styles&); >+ static Styles stylesForRenderer(const RenderObject&, OptionSet<TextDecorationLine> requestedDecorations, bool firstLineStyle = false, PseudoId = PseudoId::None); > > private: > GraphicsContext& m_context; >- OptionSet<TextDecoration> m_decorations; >+ OptionSet<TextDecorationLine> m_decorations; > float m_wavyOffset; > float m_width { 0 }; > FloatPoint m_boxOrigin; >diff --git a/Source/WebCore/rendering/style/RenderStyle.cpp b/Source/WebCore/rendering/style/RenderStyle.cpp >index 606c99b83dfb71b2682e91412745a6d0c3f6b124..135e2e11284e653f035c0dbf061e27f62510cf76 100644 >--- a/Source/WebCore/rendering/style/RenderStyle.cpp >+++ b/Source/WebCore/rendering/style/RenderStyle.cpp >@@ -1164,7 +1164,7 @@ bool RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline(const RenderStyle > { > if (m_inheritedData->color != other.m_inheritedData->color > || m_inheritedFlags.textDecorations != other.m_inheritedFlags.textDecorations >- || m_visualData->textDecoration != other.m_visualData->textDecoration >+ || m_visualData->textDecorationLine != other.m_visualData->textDecorationLine > || m_rareNonInheritedData->textDecorationStyle != other.m_rareNonInheritedData->textDecorationStyle > || m_rareNonInheritedData->textDecorationColor != other.m_rareNonInheritedData->textDecorationColor > || m_rareInheritedData->textDecorationSkipInk != other.m_rareInheritedData->textDecorationSkipInk >diff --git a/Source/WebCore/rendering/style/RenderStyle.h b/Source/WebCore/rendering/style/RenderStyle.h >index 20520424df23434320b733f4240d9a8d104692fb..5e5f1768109d29e3647a3026e58c88353ac2d4fe 100644 >--- a/Source/WebCore/rendering/style/RenderStyle.h >+++ b/Source/WebCore/rendering/style/RenderStyle.h >@@ -372,8 +372,8 @@ public: > const Length& textIndent() const { return m_rareInheritedData->indent; } > TextAlignMode textAlign() const { return static_cast<TextAlignMode>(m_inheritedFlags.textAlign); } > TextTransform textTransform() const { return static_cast<TextTransform>(m_inheritedFlags.textTransform); } >- OptionSet<TextDecoration> textDecorationsInEffect() const { return OptionSet<TextDecoration>::fromRaw(m_inheritedFlags.textDecorations); } >- OptionSet<TextDecoration> textDecoration() const { return OptionSet<TextDecoration>::fromRaw(m_visualData->textDecoration); } >+ OptionSet<TextDecorationLine> textDecorationsInEffect() const { return OptionSet<TextDecorationLine>::fromRaw(m_inheritedFlags.textDecorations); } >+ OptionSet<TextDecorationLine> textDecoration() const { return OptionSet<TextDecorationLine>::fromRaw(m_visualData->textDecorationLine); } > TextDecorationStyle textDecorationStyle() const { return static_cast<TextDecorationStyle>(m_rareNonInheritedData->textDecorationStyle); } > TextDecorationSkipInk textDecorationSkipInk() const { return static_cast<TextDecorationSkipInk>(m_rareInheritedData->textDecorationSkipInk); } > TextUnderlinePosition textUnderlinePosition() const { return static_cast<TextUnderlinePosition>(m_rareInheritedData->textUnderlinePosition); } >@@ -985,9 +985,9 @@ public: > void setTextIndent(Length&& length) { SET_VAR(m_rareInheritedData, indent, WTFMove(length)); } > void setTextAlign(TextAlignMode v) { m_inheritedFlags.textAlign = static_cast<unsigned>(v); } > void setTextTransform(TextTransform v) { m_inheritedFlags.textTransform = static_cast<unsigned>(v); } >- void addToTextDecorationsInEffect(OptionSet<TextDecoration> v) { m_inheritedFlags.textDecorations |= static_cast<unsigned>(v.toRaw()); } >- void setTextDecorationsInEffect(OptionSet<TextDecoration> v) { m_inheritedFlags.textDecorations = v.toRaw(); } >- void setTextDecoration(OptionSet<TextDecoration> v) { SET_VAR(m_visualData, textDecoration, v.toRaw()); } >+ void addToTextDecorationsInEffect(OptionSet<TextDecorationLine> v) { m_inheritedFlags.textDecorations |= static_cast<unsigned>(v.toRaw()); } >+ void setTextDecorationsInEffect(OptionSet<TextDecorationLine> v) { m_inheritedFlags.textDecorations = v.toRaw(); } >+ void setTextDecoration(OptionSet<TextDecorationLine> v) { SET_VAR(m_visualData, textDecorationLine, v.toRaw()); } > void setTextDecorationStyle(TextDecorationStyle v) { SET_VAR(m_rareNonInheritedData, textDecorationStyle, static_cast<unsigned>(v)); } > void setTextDecorationSkipInk(TextDecorationSkipInk skipInk) { SET_VAR(m_rareInheritedData, textDecorationSkipInk, static_cast<unsigned>(skipInk)); } > void setTextUnderlinePosition(TextUnderlinePosition position) { SET_VAR(m_rareInheritedData, textUnderlinePosition, static_cast<unsigned>(position)); } >@@ -1614,7 +1614,7 @@ public: > // Returning -100% percent here means the line-height is not set. > static Length initialLineHeight() { return Length(-100.0f, LengthType::Percent); } > static TextAlignMode initialTextAlign() { return TextAlignMode::Start; } >- static OptionSet<TextDecoration> initialTextDecoration() { return OptionSet<TextDecoration> { }; } >+ static OptionSet<TextDecorationLine> initialTextDecoration() { return OptionSet<TextDecorationLine> { }; } > static TextDecorationStyle initialTextDecorationStyle() { return TextDecorationStyle::Solid; } > static TextDecorationSkipInk initialTextDecorationSkipInk() { return TextDecorationSkipInk::Auto; } > static TextUnderlinePosition initialTextUnderlinePosition() { return TextUnderlinePosition::Auto; } >diff --git a/Source/WebCore/rendering/style/RenderStyleConstants.cpp b/Source/WebCore/rendering/style/RenderStyleConstants.cpp >index ee38dda60881f8a7d47484402974662ad947b14a..a294c1852bf69ac6ef81ceae1e0795593c17de8e 100644 >--- a/Source/WebCore/rendering/style/RenderStyleConstants.cpp >+++ b/Source/WebCore/rendering/style/RenderStyleConstants.cpp >@@ -1055,14 +1055,14 @@ TextStream& operator<<(TextStream& ts, TextCombine textCombine) > return ts; > } > >-TextStream& operator<<(TextStream& ts, TextDecoration textDecoration) >-{ >- switch (textDecoration) { >- case TextDecoration::None: ts << "none"; break; >- case TextDecoration::Underline: ts << "underline"; break; >- case TextDecoration::Overline: ts << "overline"; break; >- case TextDecoration::LineThrough: ts << "line-through"; break; >- case TextDecoration::Blink: ts << "blink"; break; >+TextStream& operator<<(TextStream& ts, TextDecorationLine line) >+{ >+ switch (line) { >+ case TextDecorationLine::None: ts << "none"; break; >+ case TextDecorationLine::Underline: ts << "underline"; break; >+ case TextDecorationLine::Overline: ts << "overline"; break; >+ case TextDecorationLine::LineThrough: ts << "line-through"; break; >+ case TextDecorationLine::Blink: ts << "blink"; break; > } > return ts; > } >diff --git a/Source/WebCore/rendering/style/RenderStyleConstants.h b/Source/WebCore/rendering/style/RenderStyleConstants.h >index 5d6e70ca2ada4232ec288ab73e637351b079017d..acb18d8c96c14d30925491dca616ee60d8b40e8b 100644 >--- a/Source/WebCore/rendering/style/RenderStyleConstants.h >+++ b/Source/WebCore/rendering/style/RenderStyleConstants.h >@@ -745,7 +745,7 @@ enum class TextTransform : uint8_t { > }; > > static const size_t TextDecorationBits = 4; >-enum class TextDecoration : uint8_t { >+enum class TextDecorationLine : uint8_t { > None = 0, > Underline = 1 << 0, > Overline = 1 << 1, >@@ -1339,7 +1339,7 @@ WTF::TextStream& operator<<(WTF::TextStream&, StyleDifference); > WTF::TextStream& operator<<(WTF::TextStream&, TableLayoutType); > WTF::TextStream& operator<<(WTF::TextStream&, TextAlignMode); > WTF::TextStream& operator<<(WTF::TextStream&, TextCombine); >-WTF::TextStream& operator<<(WTF::TextStream&, TextDecoration); >+WTF::TextStream& operator<<(WTF::TextStream&, TextDecorationLine); > WTF::TextStream& operator<<(WTF::TextStream&, TextDecorationSkipInk); > WTF::TextStream& operator<<(WTF::TextStream&, TextDecorationStyle); > WTF::TextStream& operator<<(WTF::TextStream&, TextEmphasisFill); >diff --git a/Source/WebCore/rendering/style/StyleVisualData.cpp b/Source/WebCore/rendering/style/StyleVisualData.cpp >index 10a447bd0ae247e5ea675a4b7a47a16e1da28056..6bd5e4c4b9c6f9787f80d60e3d44e10f25751390 100644 >--- a/Source/WebCore/rendering/style/StyleVisualData.cpp >+++ b/Source/WebCore/rendering/style/StyleVisualData.cpp >@@ -28,7 +28,7 @@ namespace WebCore { > > StyleVisualData::StyleVisualData() > : hasClip(false) >- , textDecoration(RenderStyle::initialTextDecoration().toRaw()) >+ , textDecorationLine(RenderStyle::initialTextDecoration().toRaw()) > , zoom(RenderStyle::initialZoom()) > { > } >@@ -39,7 +39,7 @@ inline StyleVisualData::StyleVisualData(const StyleVisualData& other) > : RefCounted<StyleVisualData>() > , clip(other.clip) > , hasClip(other.hasClip) >- , textDecoration(other.textDecoration) >+ , textDecorationLine(other.textDecorationLine) > , zoom(RenderStyle::initialZoom()) > { > } >diff --git a/Source/WebCore/rendering/style/StyleVisualData.h b/Source/WebCore/rendering/style/StyleVisualData.h >index d418acb50a24f8a3b218dde18c33e1aa88a8cb3b..d5da789423323d828403166f51dd4465236ecd3b 100644 >--- a/Source/WebCore/rendering/style/StyleVisualData.h >+++ b/Source/WebCore/rendering/style/StyleVisualData.h >@@ -41,14 +41,14 @@ public: > { > return clip == other.clip > && hasClip == other.hasClip >- && textDecoration == other.textDecoration >+ && textDecorationLine == other.textDecorationLine > && zoom == other.zoom; > } > bool operator!=(const StyleVisualData& other) const { return !(*this == other); } > > LengthBox clip; > bool hasClip : 1; >- unsigned textDecoration : TextDecorationBits; // Text decorations defined *only* by this element. >+ unsigned textDecorationLine : TextDecorationBits; // Text decorations defined *only* by this element. > float zoom; > > private: >diff --git a/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp b/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp >index c202b25446fe0ecbb35c472b4d29bbf8c23f3c28..55e5ccb198e6d044d6b12ee9236211aeb1391c42 100644 >--- a/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp >+++ b/Source/WebCore/rendering/svg/SVGInlineTextBox.cpp >@@ -295,10 +295,10 @@ void SVGInlineTextBox::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffse > > // Spec: All text decorations except line-through should be drawn before the text is filled and stroked; thus, the text is rendered on top of these decorations. > auto decorations = style.textDecorationsInEffect(); >- if (decorations & TextDecoration::Underline) >- paintDecoration(paintInfo.context(), TextDecoration::Underline, fragment); >- if (decorations & TextDecoration::Overline) >- paintDecoration(paintInfo.context(), TextDecoration::Overline, fragment); >+ if (decorations & TextDecorationLine::Underline) >+ paintDecoration(paintInfo.context(), TextDecorationLine::Underline, fragment); >+ if (decorations & TextDecorationLine::Overline) >+ paintDecoration(paintInfo.context(), TextDecorationLine::Overline, fragment); > > auto paintOrder = RenderStyle::paintTypesForPaintOrder(style.paintOrder()); > for (unsigned i = 0; i < paintOrder.size(); ++i) { >@@ -323,8 +323,8 @@ void SVGInlineTextBox::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffse > } > > // Spec: Line-through should be drawn after the text is filled and stroked; thus, the line-through is rendered on top of the text. >- if (decorations & TextDecoration::LineThrough) >- paintDecoration(paintInfo.context(), TextDecoration::LineThrough, fragment); >+ if (decorations & TextDecorationLine::LineThrough) >+ paintDecoration(paintInfo.context(), TextDecorationLine::LineThrough, fragment); > > setPaintingResourceMode({ }); > } >@@ -438,22 +438,22 @@ bool SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates(const SVGText > return true; > } > >-static inline float positionOffsetForDecoration(OptionSet<TextDecoration> decoration, const FontMetrics& fontMetrics, float thickness) >+static inline float positionOffsetForDecoration(OptionSet<TextDecorationLine> decoration, const FontMetrics& fontMetrics, float thickness) > { > // FIXME: For SVG Fonts we need to use the attributes defined in the <font-face> if specified. > // Compatible with Batik/Opera. >- if (decoration == TextDecoration::Underline) >+ if (decoration == TextDecorationLine::Underline) > return fontMetrics.floatAscent() + thickness * 1.5f; >- if (decoration == TextDecoration::Overline) >+ if (decoration == TextDecorationLine::Overline) > return thickness; >- if (decoration == TextDecoration::LineThrough) >+ if (decoration == TextDecorationLine::LineThrough) > return fontMetrics.floatAscent() * 5 / 8.0f; > > ASSERT_NOT_REACHED(); > return 0.0f; > } > >-static inline float thicknessForDecoration(OptionSet<TextDecoration>, const FontCascade& font) >+static inline float thicknessForDecoration(OptionSet<TextDecorationLine>, const FontCascade& font) > { > // FIXME: For SVG Fonts we need to use the attributes defined in the <font-face> if specified. > // Compatible with Batik/Opera >@@ -477,7 +477,7 @@ static inline RenderBoxModelObject& findRendererDefininingTextDecoration(LegacyI > return *renderer; > } > >-void SVGInlineTextBox::paintDecoration(GraphicsContext& context, OptionSet<TextDecoration> decoration, const SVGTextFragment& fragment) >+void SVGInlineTextBox::paintDecoration(GraphicsContext& context, OptionSet<TextDecorationLine> decoration, const SVGTextFragment& fragment) > { > if (renderer().style().textDecorationsInEffect().isEmpty()) > return; >@@ -505,7 +505,7 @@ void SVGInlineTextBox::paintDecoration(GraphicsContext& context, OptionSet<TextD > } > } > >-void SVGInlineTextBox::paintDecorationWithStyle(GraphicsContext& context, OptionSet<TextDecoration> decoration, const SVGTextFragment& fragment, RenderBoxModelObject& decorationRenderer) >+void SVGInlineTextBox::paintDecorationWithStyle(GraphicsContext& context, OptionSet<TextDecorationLine> decoration, const SVGTextFragment& fragment, RenderBoxModelObject& decorationRenderer) > { > ASSERT(!m_paintingResource); > ASSERT(!paintingResourceMode().isEmpty()); >diff --git a/Source/WebCore/rendering/svg/SVGInlineTextBox.h b/Source/WebCore/rendering/svg/SVGInlineTextBox.h >index 53ef4765fed63f3c4a0b5ff381a92862cb3d571b..1069294bd68ccd4b416fa3658ecd334d225ad9ed 100644 >--- a/Source/WebCore/rendering/svg/SVGInlineTextBox.h >+++ b/Source/WebCore/rendering/svg/SVGInlineTextBox.h >@@ -83,8 +83,8 @@ private: > bool prepareGraphicsContextForTextPainting(GraphicsContext*&, float scalingFactor, const RenderStyle&); > void restoreGraphicsContextAfterTextPainting(GraphicsContext*&); > >- void paintDecoration(GraphicsContext&, OptionSet<TextDecoration>, const SVGTextFragment&); >- void paintDecorationWithStyle(GraphicsContext&, OptionSet<TextDecoration>, const SVGTextFragment&, RenderBoxModelObject& decorationRenderer); >+ void paintDecoration(GraphicsContext&, OptionSet<TextDecorationLine>, const SVGTextFragment&); >+ void paintDecorationWithStyle(GraphicsContext&, OptionSet<TextDecorationLine>, const SVGTextFragment&, RenderBoxModelObject& decorationRenderer); > void paintTextWithShadows(GraphicsContext&, const RenderStyle&, TextRun&, const SVGTextFragment&, unsigned startPosition, unsigned endPosition); > void paintText(GraphicsContext&, const RenderStyle&, const RenderStyle& selectionStyle, const SVGTextFragment&, bool hasSelection, bool paintSelectedTextOnly); > >diff --git a/Source/WebCore/style/InlineTextBoxStyle.cpp b/Source/WebCore/style/InlineTextBoxStyle.cpp >index b4c4fc4b9509fe79216ad3173e1fcd3645f778b9..a36778de95f70692cfc1b8bd043e89c316f34fc6 100644 >--- a/Source/WebCore/style/InlineTextBoxStyle.cpp >+++ b/Source/WebCore/style/InlineTextBoxStyle.cpp >@@ -49,7 +49,7 @@ static bool isAncestorAndWithinBlock(const RenderInline& ancestor, const RenderO > return false; > } > >-static void minLogicalTopForTextDecorationLine(const InlineIterator::LineIterator& line, float& minLogicalTop, const RenderElement* decorationRenderer, OptionSet<TextDecoration> textDecoration) >+static void minLogicalTopForTextDecorationLine(const InlineIterator::LineIterator& line, float& minLogicalTop, const RenderElement* decorationRenderer, OptionSet<TextDecorationLine> textDecoration) > { > for (auto run = line->firstRun(); run; run.traverseNextOnLine()) { > if (run->renderer().isOutOfFlowPositioned()) >@@ -66,7 +66,7 @@ static void minLogicalTopForTextDecorationLine(const InlineIterator::LineIterato > } > } > >-static void maxLogicalBottomForTextDecorationLine(const InlineIterator::LineIterator& line, float& maxLogicalBottom, const RenderElement* decorationRenderer, OptionSet<TextDecoration> textDecoration) >+static void maxLogicalBottomForTextDecorationLine(const InlineIterator::LineIterator& line, float& maxLogicalBottom, const RenderElement* decorationRenderer, OptionSet<TextDecorationLine> textDecoration) > { > for (auto run = line->firstRun(); run; run.traverseNextOnLine()) { > if (run->renderer().isOutOfFlowPositioned()) >@@ -83,7 +83,7 @@ static void maxLogicalBottomForTextDecorationLine(const InlineIterator::LineIter > } > } > >-static const RenderElement* enclosingRendererWithTextDecoration(const RenderText& renderer, OptionSet<TextDecoration> textDecoration, bool firstLine) >+static const RenderElement* enclosingRendererWithTextDecoration(const RenderText& renderer, OptionSet<TextDecorationLine> textDecoration, bool firstLine) > { > const RenderElement* current = renderer.parent(); > do { >@@ -135,16 +135,16 @@ float computeUnderlineOffset(TextUnderlinePosition underlinePosition, TextUnderl > ASSERT(textRun); > // Position underline relative to the bottom edge of the lowest element's content box. > auto line = textRun->line(); >- auto* decorationRenderer = enclosingRendererWithTextDecoration(textRun->renderer(), TextDecoration::Underline, line->isFirst()); >+ auto* decorationRenderer = enclosingRendererWithTextDecoration(textRun->renderer(), TextDecorationLine::Underline, line->isFirst()); > > float offset; > if (textRun->renderer().style().isFlippedLinesWritingMode()) { > offset = textRun->logicalTop(); >- minLogicalTopForTextDecorationLine(line, offset, decorationRenderer, TextDecoration::Underline); >+ minLogicalTopForTextDecorationLine(line, offset, decorationRenderer, TextDecorationLine::Underline); > offset = textRun->logicalTop() - offset; > } else { > offset = textRun->logicalBottom(); >- maxLogicalBottomForTextDecorationLine(line, offset, decorationRenderer, TextDecoration::Underline); >+ maxLogicalBottomForTextDecorationLine(line, offset, decorationRenderer, TextDecorationLine::Underline); > offset -= textRun->logicalBottom(); > } > auto desiredOffset = textRun->logicalHeight() + gap + std::max(offset, 0.0f) + underlineOffset.lengthOr(0); >@@ -190,7 +190,7 @@ GlyphOverflow visualOverflowForDecorations(const RenderStyle& lineStyle, const I > > // These metrics must match where underlines get drawn. > // FIXME: Share the code in TextDecorationPainter::paintTextDecoration() so we can just query it for the painted geometry. >- if (decoration & TextDecoration::Underline) { >+ if (decoration & TextDecorationLine::Underline) { > // Compensate for the integral ceiling in GraphicsContext::computeLineBoundsAndAntialiasingModeForText() > int underlineOffset = 1; > float textDecorationBaseFontSize = 16; >@@ -204,7 +204,7 @@ GlyphOverflow visualOverflowForDecorations(const RenderStyle& lineStyle, const I > overflowResult.extendTop(-underlineOffset); > } > } >- if (decoration & TextDecoration::Overline) { >+ if (decoration & TextDecorationLine::Overline) { > FloatRect rect(FloatPoint(), FloatSize(1, strokeThickness)); > float autoTextDecorationThickness = TextDecorationThickness::createWithAuto().resolve(lineStyle.computedFontSize(), lineStyle.fontMetrics()); > rect.move(0, autoTextDecorationThickness - strokeThickness - wavyOffset); >@@ -217,7 +217,7 @@ GlyphOverflow visualOverflowForDecorations(const RenderStyle& lineStyle, const I > overflowResult.extendTop(-rect.y()); > overflowResult.extendBottom(rect.maxY() - height); > } >- if (decoration & TextDecoration::LineThrough) { >+ if (decoration & TextDecorationLine::LineThrough) { > FloatRect rect(FloatPoint(), FloatSize(1, strokeThickness)); > float autoTextDecorationThickness = TextDecorationThickness::createWithAuto().resolve(lineStyle.computedFontSize(), lineStyle.fontMetrics()); > auto center = 2 * lineStyle.fontMetrics().floatAscent() / 3 + autoTextDecorationThickness / 2; >diff --git a/Source/WebCore/style/StyleBuilderConverter.h b/Source/WebCore/style/StyleBuilderConverter.h >index bd893efd7e9547bedd779e405f98e95f2fadb0ee..09b4d96eb8f73234c419aecbe9e7a996e763550d 100644 >--- a/Source/WebCore/style/StyleBuilderConverter.h >+++ b/Source/WebCore/style/StyleBuilderConverter.h >@@ -77,7 +77,7 @@ public: > static LengthSize convertRadius(BuilderState&, const CSSValue&); > static LengthPoint convertPosition(BuilderState&, const CSSValue&); > static LengthPoint convertPositionOrAuto(BuilderState&, const CSSValue&); >- static OptionSet<TextDecoration> convertTextDecoration(BuilderState&, const CSSValue&); >+ static OptionSet<TextDecorationLine> convertTextDecoration(BuilderState&, const CSSValue&); > template<typename T> static T convertNumber(BuilderState&, const CSSValue&); > template<typename T> static T convertNumberOrAuto(BuilderState&, const CSSValue&); > static short convertWebkitHyphenateLimitLines(BuilderState&, const CSSValue&); >@@ -423,7 +423,7 @@ inline LengthPoint BuilderConverter::convertPositionOrAuto(BuilderState& builder > return LengthPoint(Length(LengthType::Auto), Length(LengthType::Auto)); > } > >-inline OptionSet<TextDecoration> BuilderConverter::convertTextDecoration(BuilderState&, const CSSValue& value) >+inline OptionSet<TextDecorationLine> BuilderConverter::convertTextDecoration(BuilderState&, const CSSValue& value) > { > auto result = RenderStyle::initialTextDecoration(); > if (is<CSSValueList>(value)) { >diff --git a/Source/WebKitLegacy/mac/WebView/WebView.mm b/Source/WebKitLegacy/mac/WebView/WebView.mm >index aba10413cd8789b7da33ac963cb80e31022e386e..c34ae4d74bb7b4cc88db26566532d6f0b5c297ec 100644 >--- a/Source/WebKitLegacy/mac/WebView/WebView.mm >+++ b/Source/WebKitLegacy/mac/WebView/WebView.mm >@@ -9506,7 +9506,7 @@ static NSTextAlignment nsTextAlignmentFromRenderStyle(const WebCore::RenderStyle > String value = typingStyle->style()->getPropertyValue(CSSPropertyWebkitTextDecorationsInEffect); > [_private->_textTouchBarItemController setTextIsUnderlined:value.contains("underline")]; > } else >- [_private->_textTouchBarItemController setTextIsUnderlined:style->textDecorationsInEffect().contains(TextDecoration::Underline)]; >+ [_private->_textTouchBarItemController setTextIsUnderlined:style->textDecorationsInEffect().contains(TextDecorationLine::Underline)]; > > Color textColor = style->visitedDependentColor(CSSPropertyColor); > if (textColor.isValid())
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Flags:
mmaxfield
:
review+
Actions:
View
|
Formatted Diff
|
Diff
Attachments on
bug 232729
:
443354
|
443365
| 443424 |
444420
|
444448