In the Doordash page below the "Ratings & Reviews", there is a container `<div class="sc-8ca4acab-1 juHsrD>` with `columns: 2` that displays all the reviews. Each review has a container `<div class="sc-e0d21f9c-3 fWLDfK">` with `break-inside: avoid`. So this confirms bug 793686 is the regression since it changed how `break-inside:avoid` works in multicol layout. This bug occurs when a `nsColumnSetFrame` performs the last attempt to reflow columns in a column balancing subroutine, there are abspos decedents that are skipped the reflow due to `kidNeedsReflow` is `false` [1], so they report overflow-incomplete status in the `tracker.Skip()` call [3]. However, we might reflow them with an unconstrained available block-size, so they really should be reflowed again and report complete status. I have a patch to force the reflow for all the columns in this last attempt scenario, which works with the DoorDash link, but I failed to find a reduced testcase with that. If anyone is able to find a testcase for this, it would be a great help! [1] https://searchfox.org/mozilla-central/rev/23e7e940337d0e0b29aabe0080e4992d3860c940/layout/generic/nsColumnSetFrame.cpp#1178-1190 [2] https://searchfox.org/mozilla-central/rev/23e7e940337d0e0b29aabe0080e4992d3860c940/layout/generic/nsAbsoluteContainingBlock.cpp#167,173-177 [3] https://searchfox.org/mozilla-central/rev/23e7e940337d0e0b29aabe0080e4992d3860c940/layout/generic/nsAbsoluteContainingBlock.cpp#245
Bug 1867784 Comment 9 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
In the Doordash page below the "Ratings & Reviews", there is a container `<div class="sc-8ca4acab-1 juHsrD>` with `columns: 2` that displays all the reviews. Each review has a container `<div class="sc-e0d21f9c-3 fWLDfK">` with `break-inside: avoid`. So this confirms bug 793686 is the regression since it changed how `break-inside:avoid` works in multicol layout. This bug occurs when a `nsColumnSetFrame` performs the last attempt to reflow columns in a column balancing subroutine. There are abspos decedents that are skipped the reflow due to `kidNeedsReflow` is `false` [1], so they report overflow-incomplete status in the `tracker.Skip()` call [3]. However, we might reflow them with an unconstrained available block-size, so they really should be reflowed again and report complete status. I have a patch to force the reflow for all the columns in this last attempt scenario, which works with the DoorDash link, but I failed to find a reduced testcase with that. If anyone is able to find a testcase for this, it would be a great help! [1] https://searchfox.org/mozilla-central/rev/23e7e940337d0e0b29aabe0080e4992d3860c940/layout/generic/nsColumnSetFrame.cpp#1178-1190 [2] https://searchfox.org/mozilla-central/rev/23e7e940337d0e0b29aabe0080e4992d3860c940/layout/generic/nsAbsoluteContainingBlock.cpp#167,173-177 [3] https://searchfox.org/mozilla-central/rev/23e7e940337d0e0b29aabe0080e4992d3860c940/layout/generic/nsAbsoluteContainingBlock.cpp#245
In the Doordash page below the "Ratings & Reviews", there is a container `<div class="sc-8ca4acab-1 juHsrD>` with `columns: 2` that displays all the reviews. Each review has a container `<div class="sc-e0d21f9c-3 fWLDfK">` with `break-inside: avoid`. So this confirms bug 793686 is the regression since it changed how `break-inside:avoid` works in multicol layout. This bug occurs when a `nsColumnSetFrame` performs the last attempt to reflow columns in a column balancing subroutine. There are abspos decedents that are skipped the reflow due to `kidNeedsReflow` is `false` [1], so they report overflow-incomplete status in the `tracker.Skip()` call [3]. However, we might reflow them in the last column where the available block-size in unconstrained, so they really should be reflowed again and report complete status. I have a patch to force the reflow for all the columns in this last attempt scenario, which works with the DoorDash link, but I failed to find a reduced testcase with that. If anyone is able to find a testcase for this, it would be a great help! [1] https://searchfox.org/mozilla-central/rev/23e7e940337d0e0b29aabe0080e4992d3860c940/layout/generic/nsColumnSetFrame.cpp#1178-1190 [2] https://searchfox.org/mozilla-central/rev/23e7e940337d0e0b29aabe0080e4992d3860c940/layout/generic/nsAbsoluteContainingBlock.cpp#167,173-177 [3] https://searchfox.org/mozilla-central/rev/23e7e940337d0e0b29aabe0080e4992d3860c940/layout/generic/nsAbsoluteContainingBlock.cpp#245