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

Issue 2735703005: [LayoutNG] Out-of-flow positioned objects in inline (Closed)

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

Description

[LayoutNG] Out-of-flow positioned objects in inline This patch implements out-of-flow positioned objects in inline. Since out-of-flow positioned objects requires static positions, which is not available until we build line boxes, they are added to NGInlineNode as Unicode Object Replacement Characters. When NGLineBuilder creates line boxes, they are added to the box fragment builder that wraps all line boxes. BUG=636993 Review-Url: https://codereview.chromium.org/2735703005 Cr-Commit-Position: refs/heads/master@{#456280} Committed: https://chromium.googlesource.com/chromium/src/+/4dc3db2b7fbdc48b6a3f052d725d85b5355d8cd2

Patch Set 1 #

Patch Set 2 : #

Patch Set 3 : Rebase #

Total comments: 17

Patch Set 4 : #

Patch Set 5 : #

Total comments: 4

Patch Set 6 : atotic review #

Patch Set 7 : Rebase #

Messages

Total messages: 60 (26 generated)
kojii
Aleks, Ian, Emil, does this look in good direction? I haven't understood all the code ...
3 years, 9 months ago (2017-03-06 17:45:13 UTC) #3
kojii
/cc gleb, I think float also needs position, so it should be done in NGLineBuilder, ...
3 years, 9 months ago (2017-03-06 17:45:56 UTC) #4
ikilpatrick
https://codereview.chromium.org/2735703005/diff/40001/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/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc#newcode533 third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc:533: RefPtr<NGLayoutResult> child_result = line_builder.CreateFragments(); It'd be good if we ...
3 years, 9 months ago (2017-03-06 18:09:11 UTC) #5
kojii
https://codereview.chromium.org/2735703005/diff/40001/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/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc#newcode533 third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc:533: RefPtr<NGLayoutResult> child_result = line_builder.CreateFragments(); On 2017/03/06 at 18:09:11, ikilpatrick ...
3 years, 9 months ago (2017-03-06 18:54:43 UTC) #6
kojii
On 2017/03/06 at 18:54:43, kojii wrote: > For dbaron's example, you're right that I found ...
3 years, 9 months ago (2017-03-06 19:03:10 UTC) #7
cbiesinger
https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc File third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc (right): https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc#newcode352 third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc:352: NGOutOfFlowLayoutPart(ConstraintSpace(), *inline_box_->BlockStyle(), Why don't you just leave them as ...
3 years, 9 months ago (2017-03-06 20:43:36 UTC) #9
atotic
https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc File third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc (right): https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc#newcode230 third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc:230: new NGBlockNode(layout_object), layout_object can be inline. Should be something ...
3 years, 9 months ago (2017-03-06 21:46:11 UTC) #11
kojii
https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc File third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc (right): https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc#newcode230 third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc:230: new NGBlockNode(layout_object), On 2017/03/06 at 21:46:11, atotic wrote: > ...
3 years, 9 months ago (2017-03-07 01:22:24 UTC) #12
ikilpatrick
https://codereview.chromium.org/2735703005/diff/40001/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/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc#newcode533 third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc:533: RefPtr<NGLayoutResult> child_result = line_builder.CreateFragments(); On 2017/03/06 18:54:43, kojii wrote: ...
3 years, 9 months ago (2017-03-07 01:24:03 UTC) #13
cbiesinger
https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc File third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc (right): https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc#newcode352 third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc:352: NGOutOfFlowLayoutPart(ConstraintSpace(), *inline_box_->BlockStyle(), On 2017/03/07 01:22:24, kojii wrote: > On ...
3 years, 9 months ago (2017-03-07 01:27:30 UTC) #15
kojii
https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc File third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc (right): https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc#newcode352 third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc:352: NGOutOfFlowLayoutPart(ConstraintSpace(), *inline_box_->BlockStyle(), On 2017/03/07 at 01:27:30, cbiesinger wrote: > ...
3 years, 9 months ago (2017-03-07 02:09:51 UTC) #16
kojii
https://codereview.chromium.org/2735703005/diff/40001/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/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc#newcode533 third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc:533: RefPtr<NGLayoutResult> child_result = line_builder.CreateFragments(); On 2017/03/07 at 01:24:03, ikilpatrick ...
3 years, 9 months ago (2017-03-07 02:11:13 UTC) #17
kojii
https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc File third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc (right): https://codereview.chromium.org/2735703005/diff/40001/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc#newcode230 third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc:230: new NGBlockNode(layout_object), atotic@: > Isn't positioned objects blockified? I.e., ...
3 years, 9 months ago (2017-03-07 02:13:17 UTC) #18
kojii
atotic@: The CSS WG issue here: [css-2][css-position-3] Absolutely positioned boxes in inline relatives: not interoperable ...
3 years, 9 months ago (2017-03-07 02:20:12 UTC) #19
kojii
PTAL. Since |NGFragmentBuilder.ToBoxFragment()| discards candidates, I had to |NGOutOfFlowLayoutPart.Run()| to move to |OutOfFlowDescendants|. IIUC "unpositioned" ...
3 years, 9 months ago (2017-03-07 04:49:00 UTC) #22
atotic
> No, it copies from |OutOfFlowPositions()|, but boxes in |out_of_flow_descendant_candidates_| are left untouched. Someone needs ...
3 years, 9 months ago (2017-03-07 19:25:06 UTC) #26
kojii
On 2017/03/07 at 19:25:06, atotic wrote: > > No, it copies from |OutOfFlowPositions()|, but boxes ...
3 years, 9 months ago (2017-03-08 02:25:55 UTC) #27
kojii
As I tested a few cases, adding to |NGBlockLayoutAlgorithm::builder_| looks more correct, but if you ...
3 years, 9 months ago (2017-03-08 18:12:41 UTC) #30
cbiesinger
On 2017/03/08 18:12:41, kojii wrote: > As I tested a few cases, adding to |NGBlockLayoutAlgorithm::builder_| ...
3 years, 9 months ago (2017-03-08 18:40:47 UTC) #31
kojii
atotic@, does this look good to go?
3 years, 9 months ago (2017-03-09 01:41:15 UTC) #34
atotic
On 2017/03/09 at 01:41:15, kojii wrote: > atotic@, does this look good to go? Yes, ...
3 years, 9 months ago (2017-03-09 19:15:57 UTC) #35
atotic
https://codereview.chromium.org/2735703005/diff/100001/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/2735703005/diff/100001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc#newcode462 third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc:462: break; I was reading this code, and 'break' statement ...
3 years, 9 months ago (2017-03-09 19:19:26 UTC) #36
kojii
https://codereview.chromium.org/2735703005/diff/100001/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/2735703005/diff/100001/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc#newcode462 third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc:462: break; On 2017/03/09 at 19:19:26, atotic wrote: > I ...
3 years, 9 months ago (2017-03-10 04:28:35 UTC) #37
kojii
On 2017/03/09 at 19:15:57, atotic wrote: > On 2017/03/09 at 01:41:15, kojii wrote: > > ...
3 years, 9 months ago (2017-03-10 04:28:57 UTC) #39
kojii
PTAL.
3 years, 9 months ago (2017-03-10 04:29:09 UTC) #40
atotic
On 2017/03/10 at 04:29:09, kojii wrote: > PTAL. lgtm
3 years, 9 months ago (2017-03-10 19:35:10 UTC) #44
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/2735703005/120001
3 years, 9 months ago (2017-03-11 13:21:22 UTC) #46
commit-bot: I haz the power
No L-G-T-M from a valid reviewer yet. CQ run can only be started by full ...
3 years, 9 months ago (2017-03-11 13:21:25 UTC) #48
ikilpatrick
lgtm
3 years, 9 months ago (2017-03-11 15:13:59 UTC) #49
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/2735703005/120001
3 years, 9 months ago (2017-03-11 15:14:28 UTC) #51
commit-bot: I haz the power
Try jobs failed on following builders: chromium_presubmit on master.tryserver.chromium.linux (JOB_FAILED, http://build.chromium.org/p/tryserver.chromium.linux/builders/chromium_presubmit/builds/383519) ios-device on master.tryserver.chromium.mac (JOB_FAILED, ...
3 years, 9 months ago (2017-03-11 15:16:45 UTC) #53
kojii
Thank you Ian, you wake up so early on Saturday! I'll rebase.
3 years, 9 months ago (2017-03-11 15:30:56 UTC) #54
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/2735703005/140001
3 years, 9 months ago (2017-03-11 16:08:55 UTC) #57
commit-bot: I haz the power
3 years, 9 months ago (2017-03-11 17:45:55 UTC) #60
Message was sent while issue was closed.
Committed patchset #7 (id:140001) as
https://chromium.googlesource.com/chromium/src/+/4dc3db2b7fbdc48b6a3f052d725d...

Powered by Google App Engine
This is Rietveld 408576698