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

Issue 2898413002: [LayoutNG] Add box fragments to line boxes when needed (Closed)

Created:
3 years, 7 months ago by kojii
Modified:
3 years, 6 months ago
Reviewers:
ikilpatrick, eae
CC:
atotic+reviews_chromium.org, blink-reviews, blink-reviews-layout_chromium.org, cbiesinger, chromium-reviews, dgrogan+ng_chromium.org, eae+blinkwatch, glebl+reviews_chromium.org, jchaffraix+rendering, leviw+renderwatch, ojan+watch_chromium.org, pdr+renderingwatchlist_chromium.org, szager+layoutwatch_chromium.org, zoltan1
Target Ref:
refs/heads/master
Project:
chromium
Visibility:
Public.

Description

[LayoutNG] Add box fragments to line boxes when needed This patch creates box fragments to line boxes when needed. This patch creates box fragments when an inline box has background or box decorations such as border or box shadow. When box fragments are needed is to be determined with the paint code. The previous CL[1] placed InlineFlowBox to contain all children. CSS leaves positioning of inline boxes undefined, but testing indicates that implementations don't do so, while they are quite interoperable. This patch places box fragments to be interoperable with existing implementations. NGInlineNode::CopyFragmentDataToLayoutBox needed an overhaul to place InlineFlowBox by using the geometry of box fragments. This patch also adds a few minor additions: * Add NGFragment::Offset(). * Add NGFragmentBuilder constructor from LayoutObject. * Add NGLayoutResult::MutablePhysicalFragment() to allow move semantics. * Add NGLineBoxFragmentBuilder::WritingMode(). There are some minor two-way dependencies to inline margin/border/padding patch[2]. This will be cleaned up when it landed. [1] https://codereview.chromium.org/2887623002 [2] https://codereview.chromium.org/2865903002 BUG=636993 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_layout_ng Review-Url: https://codereview.chromium.org/2898413002 Cr-Commit-Position: refs/heads/master@{#475262} Committed: https://chromium.googlesource.com/chromium/src/+/484bedec5922468b681054f150c28504bdd144e1

Patch Set 1 #

Patch Set 2 : WIP #

Patch Set 3 : WIP #

Patch Set 4 : WIP, build fix #

Patch Set 5 : Cleanup and comments #

Patch Set 6 : WIP #

Patch Set 7 : WIP #

Patch Set 8 : WIP #

Patch Set 9 : Fix crash and atomic inlines #

Patch Set 10 : Fix bidi #

Patch Set 11 : Fixes and cleanup #

Total comments: 6

Patch Set 12 : eae review #

Patch Set 13 : x64 build fix #

Unified diffs Side-by-side diffs Delta from patch set Stats (+367 lines, -103 lines) Patch
M third_party/WebKit/LayoutTests/TestExpectations View 1 2 3 4 5 6 7 8 9 10 11 12 1 chunk +1 line, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.h View 1 2 3 4 6 chunks +40 lines, -7 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.cc View 1 2 3 4 5 6 7 8 9 10 11 12 6 chunks +128 lines, -8 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc View 1 2 3 4 5 6 7 8 9 10 11 6 chunks +21 lines, -5 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc View 1 2 3 4 5 6 7 8 9 10 5 chunks +118 lines, -65 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.h View 1 2 3 4 5 6 7 8 9 10 3 chunks +7 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc View 1 2 3 4 5 6 7 8 9 10 1 chunk +9 lines, -1 line 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_fragment.h View 1 2 chunks +2 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_fragment.cc View 1 1 chunk +4 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h View 1 2 3 4 2 chunks +5 lines, -0 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc View 1 4 chunks +29 lines, -17 lines 0 comments Download
M third_party/WebKit/Source/core/layout/ng/ng_layout_result.h View 1 2 3 4 5 6 7 8 9 10 1 chunk +3 lines, -0 lines 0 comments Download

Messages

Total messages: 41 (33 generated)
kojii
PTAL.
3 years, 7 months ago (2017-05-26 17:50:29 UTC) #14
eae
Would you mind adding a section to Source/core/layout/ng/README.md explaining the basics of inline layout in ...
3 years, 7 months ago (2017-05-26 18:09:46 UTC) #16
kojii
Thank you for your prompt review as always. > Would you mind adding a section ...
3 years, 7 months ago (2017-05-26 18:26:22 UTC) #19
eae
Thanks! LGTM
3 years, 7 months ago (2017-05-26 18:30:37 UTC) #20
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/2898413002/240001
3 years, 7 months ago (2017-05-27 00:39:37 UTC) #24
commit-bot: I haz the power
Try jobs failed on following builders: win_chromium_x64_rel_ng on master.tryserver.chromium.win (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.win/builders/win_chromium_x64_rel_ng/builds/437810)
3 years, 7 months ago (2017-05-27 01:37:16 UTC) #26
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/2898413002/280001
3 years, 6 months ago (2017-05-28 15:45:43 UTC) #38
commit-bot: I haz the power
3 years, 6 months ago (2017-05-28 15:49:13 UTC) #41
Message was sent while issue was closed.
Committed patchset #13 (id:280001) as
https://chromium.googlesource.com/chromium/src/+/484bedec5922468b681054f150c2...

Powered by Google App Engine
This is Rietveld 408576698