[LayoutNG] Honor unbreakable content when column-balancing.
This ensures that we have room for the tallest piece of monolithic content, and also the tallest container with break-inside:avoid. There are more things we could pay attention to here, but at least for now we don't. We could take break avoidance between siblings into account, and also orphans and widows. Orphans and widows are honored when balancing in the legacy engine, but it's somewhat buggy; see crbug.com/1013151 - it may lead to taller columns than necessary. The net increase in passing tests isn't impressive, but this is largely due to lack of support for fragment painting. The "regressing" span-all-dynamic tests are laid out more correctly now than before, but doing things dynamically vs. doing it right away matters for the fragment painting code. This CL also introduces a mild regression. By honoring unbreakable content, we should also make sure that underflow is ignored (i.e. content that comes before the start of a fragmentainer, caused by negative margins). Otherwise we risk overstretching. This is what fast/multicol/balance-line-underflow-1.html is about. I'll submit a separate CL for that, since this one is big enough on its own. Bug: 829028 Change-Id: Iee389525c34961a7748bd5597f22c75026919671 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1854224 Commit-Queue: Morten Stenshorne <mstensho@chromium.org> Reviewed-by:Ian Kilpatrick <ikilpatrick@chromium.org> Cr-Commit-Position: refs/heads/master@{#705018}
Showing
Please register or sign in to comment