[IFC][Integration] LayoutIntegration::LineLayout should not expose InlineContent
https://bugs.webkit.org/show_bug.cgi?id=239059

Reviewed by Antti Koivisto.

Implement inkOverflowTop/inkOverflowBottom for inline iterator (LineBox) so that we can
keep InlineContent internal to LayoutIntegration::LineLayout.

* layout/integration/InlineIteratorLineBox.h:
(WebCore::InlineIterator::LineBox::inkOverflowTop const):
(WebCore::InlineIterator::LineBox::inkOverflowBottom const):
* layout/integration/InlineIteratorLineBoxLegacyPath.h:
(WebCore::InlineIterator::LineBoxIteratorLegacyPath::inkOverflowTop const):
(WebCore::InlineIterator::LineBoxIteratorLegacyPath::inkOverflowBottom const):
* layout/integration/InlineIteratorLineBoxModernPath.h:
(WebCore::InlineIterator::LineBoxIteratorModernPath::inkOverflowTop const):
(WebCore::InlineIterator::LineBoxIteratorModernPath::inkOverflowBottom const):
* layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::hasVisualOverflow const):
* layout/integration/LayoutIntegrationLineLayout.h:
(WebCore::LayoutIntegration::LineLayout::isPaginated const):
(WebCore::LayoutIntegration::LineLayout::inlineContent const): Deleted.
* rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutModernLines):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@292752 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/Source/WebCore/rendering/RenderBlockFlow.cpp b/Source/WebCore/rendering/RenderBlockFlow.cpp
index 1adfd97..83cf5a6 100644
--- a/Source/WebCore/rendering/RenderBlockFlow.cpp
+++ b/Source/WebCore/rendering/RenderBlockFlow.cpp
@@ -3645,13 +3645,11 @@
     repaintLogicalBottom = std::max(oldBorderBoxBottom, newBorderBoxBottom);
 
     auto inflateRepaintTopAndBottomWithInkOverflow = [&] {
-        auto* inlineContent = layoutFormattingContextLineLayout.inlineContent();
-        if (!inlineContent || !inlineContent->hasVisualOverflow())
+        if (!layoutFormattingContextLineLayout.hasVisualOverflow())
             return;
-        for (auto& line : inlineContent->lines) {
-            auto inkOverflow = LayoutRect { line.inkOverflow() };
-            repaintLogicalTop = std::min(repaintLogicalTop, inkOverflow.y());
-            repaintLogicalBottom = std::max(repaintLogicalBottom, inkOverflow.maxY());
+        for (auto lineBox = InlineIterator::firstLineBoxFor(*this); lineBox; lineBox.traverseNext()) {
+            repaintLogicalTop = std::min(repaintLogicalTop, LayoutUnit { lineBox->inkOverflowTop() });
+            repaintLogicalBottom = std::max(repaintLogicalBottom, LayoutUnit { lineBox->inkOverflowBottom() });
         }
     };
     inflateRepaintTopAndBottomWithInkOverflow();