commit 577185e60ee2ab7af834102130c2459de80a586d
parent 9a55af0ad3b7895a56f34de42b01ba53f2619407
Author: Ting-Yu Lin <tlin@mozilla.com>
Date: Tue, 16 Dec 2025 17:32:03 +0000
Bug 2006239 - Exclude PushedAbsolute child list in nsLayoutUtils::CalculateContentBEnd(). r=layout-reviewers,dholbert
After reflowing a column, `nsColumnSetFrame` calls
`nsLayoutUtils::CalculateContentBEnd()` to calculate the block-end of the
visible content. We want to exclude the overflow areas from descendants in the
pushed absolute child list because they belong to the next column.
This patch does not change behavior with the current code because the pushed
absolute list is empty when
`layout.abspos.fragmentainer-aware-positioning.enabled` is disabled at the
moment. This prepares for bug 1994346.
[1] https://searchfox.org/firefox-main/rev/1477feb9706f4ccc5bd571c1c215832a6fbb7464/layout/generic/nsColumnSetFrame.cpp#743
Differential Revision: https://phabricator.services.mozilla.com/D276581
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/layout/base/nsLayoutUtils.cpp b/layout/base/nsLayoutUtils.cpp
@@ -5794,9 +5794,9 @@ nscoord nsLayoutUtils::CalculateContentBEnd(WritingMode aWM, nsIFrame* aFrame) {
// calculation is intended to affect layout.
LogicalSize overflowSize(aWM, aFrame->ScrollableOverflowRect().Size());
if (overflowSize.BSize(aWM) > contentBEnd) {
- FrameChildListIDs skip = {FrameChildListID::Overflow,
- FrameChildListID::ExcessOverflowContainers,
- FrameChildListID::OverflowOutOfFlow};
+ using enum FrameChildListID;
+ FrameChildListIDs skip{PushedAbsolute, Overflow, ExcessOverflowContainers,
+ OverflowOutOfFlow};
nsBlockFrame* blockFrame = do_QueryFrame(aFrame);
if (blockFrame) {
contentBEnd =