Ability to return the height of fragmentainer groups that don't yet exist.

When the flow thread offset is out of range (i.e. it comes after the logical
bottom of the last fragmentainer group created so far) when asking for a column
height, estimate how tall the next fragmentainer group will be, instead of
returning the height of the last fragmentainer group.

It was dodgy of LayoutBlockFlow::adjustLinePositionForPagination() to call
paginatedContentWasLaidOut() before the final position of the line had been
determined, but we did so in order to create the necessary fragmentainer
groups, so that we could get the right column height. However, since we may
decide to drop the strut calculated if a line is taller than the column, we'd
better not pretend that we applied the strut. Otherwise we may create more
fragmentainer groups than necessary, causing mild confusion and assertion
failures in the multicol machinery.

To fix this, we need LayoutBlock::pageLogicalHeightForOffset() to be able to
return the height of columns in a fragmentainer group that has't yet been
created (and perhaps never will). The rationale behind this solution is that it
seems better to deal with this inside the multicol implementation, than to add
more complexity in adjustLinePositionForPagination(). Leaving LayoutBlockFlow
blissfully unaware of multiple fragmentainer groups seems like a good thing.

BUG=552615

Review URL: https://codereview.chromium.org/1710843003

Cr-Commit-Position: refs/heads/master@{#377256}
6 files changed