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

Issue 2632523002: [LayoutNG] Initial support for multicol, introducing NGBlockBreakToken. (Closed)

Created:
3 years, 11 months ago by mstensho (USE GERRIT)
Modified:
3 years, 10 months ago
Reviewers:
ikilpatrick, eae
CC:
chromium-reviews, cbiesinger, ojan+watch_chromium.org, szager+layoutwatch_chromium.org, glebl+reviews_chromium.org, blink-reviews-style_chromium.org, atotic+reviews_chromium.org, blink-reviews-layout_chromium.org, pdr+renderingwatchlist_chromium.org, eae+blinkwatch, leviw+renderwatch, zoltan1, jchaffraix+rendering, blink-reviews
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

[LayoutNG] Initial support for multicol, introducing NGBlockBreakToken. We can now lay out block-level floats and in-flow blocks inside a multicol container. Note that painting and hit testing doesn't work too well, since those operations are still performed on the legacy LayoutObject tree, and there's no way to fragment a LayoutObject. No attempt has been made at integrating this with out-of-flow positioning or inline-level layout. Review-Url: https://codereview.chromium.org/2632523002 Cr-Commit-Position: refs/heads/master@{#444512} Committed: https://chromium.googlesource.com/chromium/src/+/24bfa2fe65cc6bb73338d9d7a2f2175efee45c83

Patch Set 1 #

Total comments: 6

Patch Set 2 : More documentation. #

Total comments: 13

Patch Set 3 : rebase master #

Patch Set 4 : DCHECK that FragmentainerSpaceAvailable() when inside a fragmentation context. #

Total comments: 2

Patch Set 5 : rebase master #

Patch Set 6 : Add TODO. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1160 lines, -21 lines) Patch
A third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h View 1 chunk +43 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h View 1 4 chunks +53 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc View 1 2 3 4 5 9 chunks +173 lines, -6 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc View 1 chunk +718 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_block_node.h View 4 chunks +11 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_block_node.cc View 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_break_token.h View 1 chunk +14 lines, -4 lines 0 comments Download
A third_party/WebKit/Source/core/layout/ng/ng_column_mapper.h View 1 chunk +82 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h View 1 2 3 4 chunks +15 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc View 2 chunks +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h View 2 chunks +6 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc View 4 chunks +10 lines, -4 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h View 2 chunks +8 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc View 4 chunks +7 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc View 1 2 3 4 5 1 chunk +4 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h View 1 chunk +2 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc View 1 chunk +4 lines, -2 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h View 1 chunk +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/style/StyleMultiColData.h View 2 chunks +2 lines, -1 line 0 comments Download

Messages

Total messages: 23 (9 generated)
mstensho (USE GERRIT)
@ikilpatrick: Note that the NGBlockBreakToken is quite different (simpler) compared to what you sketched in ...
3 years, 11 months ago (2017-01-12 22:53:58 UTC) #4
eae
Love it!
3 years, 11 months ago (2017-01-12 23:11:33 UTC) #5
eae
(detailed review to follow)
3 years, 11 months ago (2017-01-12 23:11:44 UTC) #6
eae
https://codereview.chromium.org/2632523002/diff/1/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc File third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc (right): https://codereview.chromium.org/2632523002/diff/1/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc#newcode473 third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc:473: if (!fragmentainer_mapper_) { When is fragmentainer_mapper_ expected to be ...
3 years, 11 months ago (2017-01-12 23:36:23 UTC) #7
mstensho (USE GERRIT)
https://codereview.chromium.org/2632523002/diff/1/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc File third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc (right): https://codereview.chromium.org/2632523002/diff/1/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc#newcode473 third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc:473: if (!fragmentainer_mapper_) { On 2017/01/12 23:36:23, eae wrote: > ...
3 years, 11 months ago (2017-01-13 14:30:18 UTC) #10
eae
Thanks for the clarifications, makes a lot more sense now! LGTM
3 years, 11 months ago (2017-01-17 02:56:28 UTC) #11
ikilpatrick
I'll have a look tomorrow Morten :).
3 years, 11 months ago (2017-01-17 04:40:21 UTC) #12
ikilpatrick
lgtm Have a look at the IsLayoutFinished comment. https://codereview.chromium.org/2632523002/diff/20001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc File third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc (right): https://codereview.chromium.org/2632523002/diff/20001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc#newcode281 third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc:281: new ...
3 years, 11 months ago (2017-01-18 02:12:22 UTC) #13
mstensho (USE GERRIT)
https://codereview.chromium.org/2632523002/diff/20001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc File third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc (right): https://codereview.chromium.org/2632523002/diff/20001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc#newcode281 third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc:281: new NGColumnMapper(inline_progression, adjusted_block_size); On 2017/01/18 02:12:22, ikilpatrick wrote: > ...
3 years, 11 months ago (2017-01-18 11:52:10 UTC) #14
ikilpatrick
still lgtm, I'm fine with addressing issues in a followup patch. https://codereview.chromium.org/2632523002/diff/20001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc File third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc (right): ...
3 years, 11 months ago (2017-01-18 18:46:47 UTC) #15
mstensho (USE GERRIT)
Landing this now. Please press the big red button if you have any further concerns. ...
3 years, 11 months ago (2017-01-18 20:21:53 UTC) #16
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/v2/patch-status/codereview.chromium.org/2632523002/100001
3 years, 11 months ago (2017-01-18 20:22:56 UTC) #19
ikilpatrick
Sounds good, yeah fine to land. The fragment pointer inside the NGBlockNode shouldn't really be ...
3 years, 11 months ago (2017-01-18 21:56:02 UTC) #20
commit-bot: I haz the power
3 years, 11 months ago (2017-01-18 22:25:05 UTC) #23
Message was sent while issue was closed.
Committed patchset #6 (id:100001) as
https://chromium.googlesource.com/chromium/src/+/24bfa2fe65cc6bb73338d9d7a2f2...

Powered by Google App Engine
This is Rietveld 408576698