Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(10)

Issue 1710843003: Ability to return the height of fragmentainer groups that don't yet exist. (Closed)

Created:
4 years, 10 months ago by mstensho (USE GERRIT)
Modified:
4 years, 10 months ago
CC:
blink-reviews, blink-reviews-layout_chromium.org, chromium-reviews, eae+blinkwatch, jchaffraix+rendering, leviw+renderwatch, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

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 Committed: https://crrev.com/3f96177578cf0511174d42546a70660cc8d6eeeb Cr-Commit-Position: refs/heads/master@{#377256}

Patch Set 1 #

Total comments: 1

Messages

Total messages: 13 (5 generated)
mstensho (USE GERRIT)
4 years, 10 months ago (2016-02-22 19:36:46 UTC) #2
leviw_travelin_and_unemployed
This is messy, but so was the other 'solution' :) LGTM. https://codereview.chromium.org/1710843003/diff/1/third_party/WebKit/Source/core/layout/LayoutMultiColumnSet.cpp File third_party/WebKit/Source/core/layout/LayoutMultiColumnSet.cpp (right): ...
4 years, 10 months ago (2016-02-23 18:56:17 UTC) #3
mstensho (USE GERRIT)
On 2016/02/23 18:56:17, leviw wrote: > This is messy, but so was the other 'solution' ...
4 years, 10 months ago (2016-02-23 19:00:48 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1710843003/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1710843003/1
4 years, 10 months ago (2016-02-23 19:06:46 UTC) #6
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_rel_ng on tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_rel_ng/builds/178192)
4 years, 10 months ago (2016-02-23 22:16:50 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1710843003/1 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1710843003/1
4 years, 10 months ago (2016-02-24 09:06:42 UTC) #10
commit-bot: I haz the power
Committed patchset #1 (id:1)
4 years, 10 months ago (2016-02-24 10:08:26 UTC) #11
commit-bot: I haz the power
4 years, 10 months ago (2016-02-24 10:09:33 UTC) #13
Message was sent while issue was closed.
Patchset 1 (id:??) landed as
https://crrev.com/3f96177578cf0511174d42546a70660cc8d6eeeb
Cr-Commit-Position: refs/heads/master@{#377256}

Powered by Google App Engine
This is Rietveld 408576698