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

Issue 1769483002: Class A fragmentainer break points also exist between zero-height blocks. (Closed)

Created:
4 years, 9 months ago by mstensho (USE GERRIT)
Modified:
4 years, 9 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

Class A fragmentainer break points also exist between zero-height blocks. We used to base class A break point [1] detection on whether we were at the start of the container, location-wise (atBeforeSideOfBlock). That's not sufficient. It's obviously okay to collapse margins through a zero-height block, and basically pretend that it doesn't exist for the sake of margin collapsing. But this isn't true for fragmentation. Class A break points [1] exist between any two in-flow blocks, regardless of the height of said blocks. Therefore we cannot propagate the pagination strut caused by a line inside a block following an empty first-child block. We still need to keep the check for whether we are at the start of the container, though, because if we aren't, it means that we have a class C break point [1]. This CL introduces the BlockChildrenLayoutInfo class, which is used as a state object during block children layout. This replaces MarginInfo and LayoutUnit previousFloatLogicalBottom, which is what we used to pass back and forth. They have now been wrapped into BlockChildrenLayoutInfo, along with a new piece of information: whether we're laying out the first in-flow child or not. This information is what we now use to detect if we're at a class A break point [1] or not. [1] https://drafts.csswg.org/css-break/#possible-breaks R=leviw@chromium.org BUG=223068 Committed: https://crrev.com/fe283ea1ad33abe251cbb4a921f7f836085bab82 Cr-Commit-Position: refs/heads/master@{#380625}

Patch Set 1 #

Patch Set 2 : Regression fixed: missed a class C break opportunity. Updated the documentation. #

Total comments: 4

Patch Set 3 : rebase master #

Patch Set 4 : Link to the scriptures. #

Messages

Total messages: 13 (6 generated)
mstensho (USE GERRIT)
4 years, 9 months ago (2016-03-04 12:36:19 UTC) #2
mstensho (USE GERRIT)
@leviw: ping
4 years, 9 months ago (2016-03-10 19:09:23 UTC) #4
leviw_travelin_and_unemployed
lgtm https://codereview.chromium.org/1769483002/diff/20001/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp File third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp (right): https://codereview.chromium.org/1769483002/diff/20001/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp#newcode161 third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:161: class BlockChildrenLayoutInfo { I'm in love with context ...
4 years, 9 months ago (2016-03-10 21:23:59 UTC) #5
mstensho (USE GERRIT)
https://codereview.chromium.org/1769483002/diff/20001/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp File third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp (right): https://codereview.chromium.org/1769483002/diff/20001/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp#newcode161 third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp:161: class BlockChildrenLayoutInfo { On 2016/03/10 21:23:59, leviw wrote: > ...
4 years, 9 months ago (2016-03-11 10:18:49 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1769483002/60001 View timeline at https://chromium-cq-status.appspot.com/patch-timeline/1769483002/60001
4 years, 9 months ago (2016-03-11 10:20:21 UTC) #9
commit-bot: I haz the power
Committed patchset #4 (id:60001)
4 years, 9 months ago (2016-03-11 14:19:28 UTC) #11
commit-bot: I haz the power
4 years, 9 months ago (2016-03-11 14:20:54 UTC) #13
Message was sent while issue was closed.
Patchset 4 (id:??) landed as
https://crrev.com/fe283ea1ad33abe251cbb4a921f7f836085bab82
Cr-Commit-Position: refs/heads/master@{#380625}

Powered by Google App Engine
This is Rietveld 408576698