Title: [233357] trunk/Source/WebCore
- Revision
- 233357
- Author
- [email protected]
- Date
- 2018-06-29 08:20:47 -0700 (Fri, 29 Jun 2018)
Log Message
[LFC] When the formatting root is also a containing block for out-of-flow elements.
https://bugs.webkit.org/show_bug.cgi?id=187179
Reviewed by Antti Koivisto.
Out-of-flow descendants' layout requires their containing block height to be computed. This patch takes care of the case
when the containing block is also a formatting context root (e.g. relative positioned with overflow other than visible).
* layout/Verification.cpp:
(WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):
* layout/blockformatting/BlockFormattingContext.cpp:
(WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):
Modified Paths
Diff
Modified: trunk/Source/WebCore/ChangeLog (233356 => 233357)
--- trunk/Source/WebCore/ChangeLog 2018-06-29 14:47:06 UTC (rev 233356)
+++ trunk/Source/WebCore/ChangeLog 2018-06-29 15:20:47 UTC (rev 233357)
@@ -1,5 +1,20 @@
2018-06-29 Zalan Bujtas <[email protected]>
+ [LFC] When the formatting root is also a containing block for out-of-flow elements.
+ https://bugs.webkit.org/show_bug.cgi?id=187179
+
+ Reviewed by Antti Koivisto.
+
+ Out-of-flow descendants' layout requires their containing block height to be computed. This patch takes care of the case
+ when the containing block is also a formatting context root (e.g. relative positioned with overflow other than visible).
+
+ * layout/Verification.cpp:
+ (WebCore::Layout::LayoutContext::verifyAndOutputMismatchingLayoutTree const):
+ * layout/blockformatting/BlockFormattingContext.cpp:
+ (WebCore::Layout::BlockFormattingContext::layoutFormattingContextRoot const):
+
+2018-06-29 Zalan Bujtas <[email protected]>
+
[LFC] Do not skip the next inflow sibling after finishing a formatting context root layout.
https://bugs.webkit.org/show_bug.cgi?id=187178
Modified: trunk/Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp (233356 => 233357)
--- trunk/Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp 2018-06-29 14:47:06 UTC (rev 233356)
+++ trunk/Source/WebCore/layout/blockformatting/BlockFormattingContext.cpp 2018-06-29 15:20:47 UTC (rev 233357)
@@ -148,6 +148,8 @@
FloatingContext(formattingState.floatingState()).computePosition(layoutBox, displayBox);
LOG_WITH_STREAM(FormattingContextLayout, stream << "[Compute] -> [Height][Margin] -> for layoutBox(" << &layoutBox << ")");
computeHeightAndMargin(layoutContext, layoutBox, displayBox);
+ // Now that we computed the root's height, we can go back and layout the out-of-flow descedants (if any).
+ formattingContext->layoutOutOfFlowDescendants(layoutContext, layoutBox);
}
std::unique_ptr<FormattingState> BlockFormattingContext::createFormattingState(Ref<FloatingState>&& floatingState) const
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes