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