Title: [238227] trunk/Source/WebCore
Revision
238227
Author
za...@apple.com
Date
2018-11-15 07:35:21 -0800 (Thu, 15 Nov 2018)

Log Message

[LFC][IFC] Skip non-inflow boxes while splitting the inline runs.
https://bugs.webkit.org/show_bug.cgi?id=191690

Reviewed by Antti Koivisto.

Skip all non-inflow boxes (floats, out-of-flow positioned elements). They don't participate in the inline run context.

* layout/Verification.cpp:
(WebCore::Layout::LayoutState::verifyAndOutputMismatchingLayoutTree const):
* layout/inlineformatting/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::splitInlineRunIfNeeded const):

Modified Paths

Diff

Modified: trunk/Source/WebCore/ChangeLog (238226 => 238227)


--- trunk/Source/WebCore/ChangeLog	2018-11-15 14:58:16 UTC (rev 238226)
+++ trunk/Source/WebCore/ChangeLog	2018-11-15 15:35:21 UTC (rev 238227)
@@ -1,5 +1,19 @@
 2018-11-15  Zalan Bujtas  <za...@apple.com>
 
+        [LFC][IFC] Skip non-inflow boxes while splitting the inline runs.
+        https://bugs.webkit.org/show_bug.cgi?id=191690
+
+        Reviewed by Antti Koivisto.
+
+        Skip all non-inflow boxes (floats, out-of-flow positioned elements). They don't participate in the inline run context.
+
+        * layout/Verification.cpp:
+        (WebCore::Layout::LayoutState::verifyAndOutputMismatchingLayoutTree const):
+        * layout/inlineformatting/InlineFormattingContext.cpp:
+        (WebCore::Layout::InlineFormattingContext::splitInlineRunIfNeeded const):
+
+2018-11-15  Zalan Bujtas  <za...@apple.com>
+
         [LFC] FormattingContext base class should not declare computeStaticPosition.
         https://bugs.webkit.org/show_bug.cgi?id=191683
 

Modified: trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.cpp (238226 => 238227)


--- trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.cpp	2018-11-15 14:58:16 UTC (rev 238226)
+++ trunk/Source/WebCore/layout/inlineformatting/InlineFormattingContext.cpp	2018-11-15 15:35:21 UTC (rev 238227)
@@ -160,6 +160,10 @@
     for (auto iterator = inlineContent.find<const InlineItem&, InlineItemHashTranslator>(inlineRun.inlineItem()); iterator != inlineContent.end() && remaningLength > 0; ++iterator) {
         auto& inlineItem = **iterator;
 
+        // Skip all non-inflow boxes (floats, out-of-flow positioned elements). They don't participate in the inline run context.
+        if (!inlineItem.layoutBox().isInFlow())
+            continue;
+
         auto currentLength = [&] {
             return std::min(remaningLength, inlineItem.textContent().length() - startPosition);
         };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to