Diff
Modified: trunk/Source/WebCore/ChangeLog (282736 => 282737)
--- trunk/Source/WebCore/ChangeLog 2021-09-19 16:42:57 UTC (rev 282736)
+++ trunk/Source/WebCore/ChangeLog 2021-09-19 17:04:38 UTC (rev 282737)
@@ -1,5 +1,23 @@
2021-09-19 Antti Koivisto <[email protected]>
+ [lFC][Integration] Enable some text painting features
+ https://bugs.webkit.org/show_bug.cgi?id=230459
+
+ Reviewed by Sam Weinig.
+
+ Enable text-shadow and background-clip:text.
+
+ * layout/integration/LayoutIntegrationCoverage.cpp:
+ (WebCore::LayoutIntegration::printReason):
+ (WebCore::LayoutIntegration::canUseForStyle):
+ * layout/integration/LayoutIntegrationCoverage.h:
+ * layout/integration/LayoutIntegrationLineLayout.cpp:
+ (WebCore::LayoutIntegration::LineLayout::paint):
+
+ Allow TextClip paint phase.
+
+2021-09-19 Antti Koivisto <[email protected]>
+
[LFC][Integration] Make block selection gap painting use iterator
https://bugs.webkit.org/show_bug.cgi?id=230457
Modified: trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp (282736 => 282737)
--- trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp 2021-09-19 16:42:57 UTC (rev 282736)
+++ trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp 2021-09-19 17:04:38 UTC (rev 282737)
@@ -153,9 +153,6 @@
case AvoidanceReason::FlowHasTextCombine:
stream << "text combine";
break;
- case AvoidanceReason::FlowHasTextFillBox:
- stream << "background-color (text-fill)";
- break;
case AvoidanceReason::FlowHasBorderFitLines:
stream << "-webkit-border-fit";
break;
@@ -192,9 +189,6 @@
case AvoidanceReason::FlowHasComplexFontCodePath:
stream << "text with complex font codepath";
break;
- case AvoidanceReason::FlowHasTextShadow:
- stream << "text-shadow";
- break;
case AvoidanceReason::FlowChildIsSelected:
stream << "selected content";
break;
@@ -509,8 +503,6 @@
SET_REASON_AND_RETURN_IF_NEEDED(FlowHasRTLOrdering, reasons, includeReasons);
if (style.textEmphasisFill() != TextEmphasisFill::Filled || style.textEmphasisMark() != TextEmphasisMark::None)
SET_REASON_AND_RETURN_IF_NEEDED(FlowHasTextEmphasisFillOrMark, reasons, includeReasons);
- if (style.textShadow())
- SET_REASON_AND_RETURN_IF_NEEDED(FlowHasTextShadow, reasons, includeReasons);
if (style.hasPseudoStyle(PseudoId::FirstLine))
SET_REASON_AND_RETURN_IF_NEEDED(FlowHasPseudoFirstLine, reasons, includeReasons);
if (style.hasPseudoStyle(PseudoId::FirstLetter))
@@ -517,8 +509,6 @@
SET_REASON_AND_RETURN_IF_NEEDED(FlowHasPseudoFirstLetter, reasons, includeReasons);
if (style.hasTextCombine())
SET_REASON_AND_RETURN_IF_NEEDED(FlowHasTextCombine, reasons, includeReasons);
- if (style.backgroundClip() == FillBox::Text)
- SET_REASON_AND_RETURN_IF_NEEDED(FlowHasTextFillBox, reasons, includeReasons);
// These are non-standard properties.
if (style.lineBreak() == LineBreak::AfterWhiteSpace)
Modified: trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.h (282736 => 282737)
--- trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.h 2021-09-19 16:42:57 UTC (rev 282736)
+++ trunk/Source/WebCore/layout/integration/LayoutIntegrationCoverage.h 2021-09-19 17:04:38 UTC (rev 282737)
@@ -60,11 +60,11 @@
FlowHasLineAlignEdges = 1LLU << 20,
FlowHasLineSnap = 1LLU << 21,
FlowHasTextEmphasisFillOrMark = 1LLU << 22,
- FlowHasTextShadow = 1LLU << 23,
+ // Unused = 1LLU << 23,
FlowHasPseudoFirstLine = 1LLU << 24,
FlowHasPseudoFirstLetter = 1LLU << 25,
FlowHasTextCombine = 1LLU << 26,
- FlowHasTextFillBox = 1LLU << 27,
+ // Unused = 1LLU << 27,
FlowHasBorderFitLines = 1LLU << 28,
FlowHasAfterWhiteSpaceLineBreak = 1LLU << 29,
FlowHasTextSecurity = 1LLU << 30,
Modified: trunk/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp (282736 => 282737)
--- trunk/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp 2021-09-19 16:42:57 UTC (rev 282736)
+++ trunk/Source/WebCore/layout/integration/LayoutIntegrationLineLayout.cpp 2021-09-19 17:04:38 UTC (rev 282737)
@@ -492,7 +492,7 @@
if (!m_inlineContent)
return;
- if (paintInfo.phase != PaintPhase::Foreground && paintInfo.phase != PaintPhase::EventRegion)
+ if (paintInfo.phase != PaintPhase::Foreground && paintInfo.phase != PaintPhase::EventRegion && paintInfo.phase != PaintPhase::TextClip)
return;
auto paintRect = paintInfo.rect;