New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 7 users

Issue metadata

Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature

Blocked on:
issue 740993

Blocking:
issue 591099
issue 636993
issue 687856



Sign in to add a comment

[LayoutNG] Initial block-of-blocks layout implementation.

Project Member Reported by ikilpatrick@chromium.org, Aug 8 2016 Back to list

Issue description

This bug encompasses the following work:
 - Initial class definitions of the core layout ng api.
 - Initial block-of-blocks layout algorithm.
 - Initial plumbing from old layout tree to internal LayoutNG result.
 
Showing comments 258 - 357 of 357 Older
Project Member

Comment 258 by bugdroid1@chromium.org, May 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/372982c74eebb545c7dbf84b199c69be4a7b915d

commit 372982c74eebb545c7dbf84b199c69be4a7b915d
Author: guidou <guidou@chromium.org>
Date: Sat May 27 09:29:24 2017

Update TestExpectations.

Test expectations were updated for many tests in
https://codereview.chromium.org/2905933002

For some of the tests, expectation was updated from "Skip" to "Crash",
but many bots are failing reliably with "Failure".

This CL adds "Failure"  to the expectation of those tests.

BUG=635619
TBR=atotic
NOTRY=true

Review-Url: https://codereview.chromium.org/2911603004
Cr-Commit-Position: refs/heads/master@{#475245}

[modify] https://crrev.com/372982c74eebb545c7dbf84b199c69be4a7b915d/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 259 by bugdroid1@chromium.org, May 27 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d932d66b1f1d0d873d935a6c9e2df0807843c908

commit d932d66b1f1d0d873d935a6c9e2df0807843c908
Author: guidou <guidou@chromium.org>
Date: Sat May 27 10:32:20 2017

Update TestExpectations for crashing test.

virtual/layout_ng/fast/block/float/float-not-removed-from-pre-block.html
was originally marked as "Failure", but it crashes on at least one bot
(Linux Trusty ASAN).

BUG=635619
TBR=atotic@chromium.org
NOTRY=true

Review-Url: https://codereview.chromium.org/2911823002
Cr-Commit-Position: refs/heads/master@{#475246}

[modify] https://crrev.com/d932d66b1f1d0d873d935a6c9e2df0807843c908/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 260 by bugdroid1@chromium.org, Jun 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/639c840bf93e2934fe6b3f564f90060313d5791a

commit 639c840bf93e2934fe6b3f564f90060313d5791a
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jun 01 18:15:25 2017

[LayoutNG] Removes per-child state from NGBlockLayoutAlgorithm.

Removes curr_bfc_offset_, curr_child_margins_, curr_margin_strut_ in
favour of stack variables.

This clears up the information flow between children, and makes it clear
*which* margin strut, etc is being used for a particular child's
positioning. (E.g. the OOFPositioned child's positioning was difficult
to determine before).

This introduces one regression which I'll investigate separately (static
position is weird with abs-pos legacy children now) - so I've removed the
LayoutNG CQ bot.

BUG=635619

Review-Url: https://codereview.chromium.org/2899413002
Cr-Commit-Position: refs/heads/master@{#476354}

[modify] https://crrev.com/639c840bf93e2934fe6b3f564f90060313d5791a/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/639c840bf93e2934fe6b3f564f90060313d5791a/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/639c840bf93e2934fe6b3f564f90060313d5791a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/639c840bf93e2934fe6b3f564f90060313d5791a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h

Project Member

Comment 261 by bugdroid1@chromium.org, Jun 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1656845883fb809150e98b3eb0748ea1bb663992

commit 1656845883fb809150e98b3eb0748ea1bb663992
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Mon Jun 05 18:00:02 2017

[LayoutNG] PODify NGLayoutInputNode and sub-classes.

This converts NGLayoutInputNode into a POD-like class.

The interesting parts of this patch are:
 - The lifecycle of the NGInlineNodeData.
 - The manual v-table inside of NGLayoutInputNode.

BUG=635619
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_layout_ng

Review-Url: https://codereview.chromium.org/2921463004
Cr-Commit-Position: refs/heads/master@{#477023}

[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/LayoutObject.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_break_token.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_break_token.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_data.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_text_fragment_builder.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/inline/ng_text_fragment_builder.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_base_layout_algorithm_test.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator_test.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_block_node_test.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_break_token.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_column_layout_algorithm.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_column_layout_algorithm.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_space_utils_test.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.cc
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.h
[modify] https://crrev.com/1656845883fb809150e98b3eb0748ea1bb663992/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member

Comment 262 by bugdroid1@chromium.org, Jun 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f723897c7994e4ceee81dba57a6a3b94bc974a05

commit f723897c7994e4ceee81dba57a6a3b94bc974a05
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue Jun 13 14:47:26 2017

[LayoutNG] Refactor of NGLineBreaker.

This patch does a few things because I got slightly carried away:
 - Removes the fact that NGLineBreaker takens an NGInlineAlgorithm as an
   argument.

 - Has better logic around resolving the BfcOffset of the container and
   positioning floats. We were previously doing this incorrectly.
   Specifically resolving too early if we just had floats.

 - Removes the available_width_ class member and makes it a stack
   allocated WTF::Optional for clarity now.

 - Tries to simplify a few other things.

BUG=635619

Review-Url: https://codereview.chromium.org/2930963002
Cr-Commit-Position: refs/heads/master@{#479016}

[modify] https://crrev.com/f723897c7994e4ceee81dba57a6a3b94bc974a05/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/f723897c7994e4ceee81dba57a6a3b94bc974a05/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/f723897c7994e4ceee81dba57a6a3b94bc974a05/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/f723897c7994e4ceee81dba57a6a3b94bc974a05/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/f723897c7994e4ceee81dba57a6a3b94bc974a05/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/f723897c7994e4ceee81dba57a6a3b94bc974a05/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/f723897c7994e4ceee81dba57a6a3b94bc974a05/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/f723897c7994e4ceee81dba57a6a3b94bc974a05/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/f723897c7994e4ceee81dba57a6a3b94bc974a05/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h

Project Member

Comment 263 by bugdroid1@chromium.org, Jun 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d0b8f4909e983ea6c5dd60c25216e6fdf3ccb39b

commit d0b8f4909e983ea6c5dd60c25216e6fdf3ccb39b
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Jun 14 23:53:35 2017

[LayoutNG] A little bit of documentation on margin collapsing.

BUG=635619
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_layout_ng

Review-Url: https://codereview.chromium.org/2925273007
Cr-Commit-Position: refs/heads/master@{#479547}

[add] https://crrev.com/d0b8f4909e983ea6c5dd60c25216e6fdf3ccb39b/third_party/WebKit/Source/core/layout/ng/BlockLayout.md

Project Member

Comment 264 by bugdroid1@chromium.org, Jun 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e47fe16501daea54a8926f47a3c9afe778887094

commit e47fe16501daea54a8926f47a3c9afe778887094
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Jun 16 21:19:21 2017

[LayoutNG] Fixes small crash inside preferred widths.

We were previously trying to perform perferred width calculation on a
non-LayoutNG layout object.

BUG=635619

Review-Url: https://codereview.chromium.org/2880993004
Cr-Commit-Position: refs/heads/master@{#480172}

[modify] https://crrev.com/e47fe16501daea54a8926f47a3c9afe778887094/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/e47fe16501daea54a8926f47a3c9afe778887094/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/e47fe16501daea54a8926f47a3c9afe778887094/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc

Project Member

Comment 265 by bugdroid1@chromium.org, Jun 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07a754c70339bd975c433dfe344f003eaeaa8cc3

commit 07a754c70339bd975c433dfe344f003eaeaa8cc3
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Jun 23 20:41:12 2017

[LayoutNG] Fix positioning of zero-block-size-div, and content size.

This patch does a few small things:
 - Removes adding the end margin for a zero-block-size-div for positioning
   (which was incorrect).
 - Calculate the final content_size_ based off the previous inflow position.
    (If it was -ve, we'd overestimate the height).
 - Clarified a few comments.

BUG=635619
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_layout_ng

Review-Url: https://codereview.chromium.org/2954013002
Cr-Commit-Position: refs/heads/master@{#482017}

[modify] https://crrev.com/07a754c70339bd975c433dfe344f003eaeaa8cc3/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/07a754c70339bd975c433dfe344f003eaeaa8cc3/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/07a754c70339bd975c433dfe344f003eaeaa8cc3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/07a754c70339bd975c433dfe344f003eaeaa8cc3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc

Project Member

Comment 266 by bugdroid1@chromium.org, Jun 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a0782d6a6407c627004bac723cf73751d8fec130

commit a0782d6a6407c627004bac723cf73751d8fec130
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jun 29 18:08:25 2017

[LayoutNG] Move bfc_offset_, end_margin_sturt_ to NGLayoutResult

This is in preparation for relayout zero-block-size floats quirk.

For an aborted layout we don't want the NGLayoutResult to have a Fragment
associated with it, but we do want a BfcOffset, and EndMarginStrut.

This also cleans up double vector for out-of-flow positioned descendants, while
I was there.

BUG=635619

Review-Url: https://codereview.chromium.org/2960233002
Cr-Commit-Position: refs/heads/master@{#483422}

[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.cc
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.h
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc
[add] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_positioned_descendant.h
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/a0782d6a6407c627004bac723cf73751d8fec130/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h

Project Member

Comment 268 by bugdroid1@chromium.org, Jun 29 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d1e96b7ddea88fa9219478bfbd04f94772e31718

commit d1e96b7ddea88fa9219478bfbd04f94772e31718
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jun 29 21:36:52 2017

[LayoutNG] Stretch content size of BFCs to encapsulate floats.

Just a simple fix to make sure that BFC stretch to fit all of the floats inside them.

BUG=635619

Review-Url: https://codereview.chromium.org/2955613002
Cr-Commit-Position: refs/heads/master@{#483494}

[modify] https://crrev.com/d1e96b7ddea88fa9219478bfbd04f94772e31718/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/d1e96b7ddea88fa9219478bfbd04f94772e31718/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc

Project Member

Comment 270 by bugdroid1@chromium.org, Jun 30 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e65e2d1acb3c3bb037f0183bdd3db4cf35da45c2

commit e65e2d1acb3c3bb037f0183bdd3db4cf35da45c2
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Jun 30 21:23:26 2017

[LayoutNG] Float behavior simplification before larger patch.

This is just an intermediate patch which simplifies some of the float
logic.

As we won't be "re-parenting" floats away from their actual parents
anymore a lot of the complex logic around the offsets becomes simpler.

Specifically we won't need the "paint-offset" calculation anymore.

This is just an initial patch to reduce the behaviour, it has some
regressions, but these should be fixed with the new code.

BUG=635619

Review-Url: https://codereview.chromium.org/2945213004
Cr-Commit-Position: refs/heads/master@{#483826}

[modify] https://crrev.com/e65e2d1acb3c3bb037f0183bdd3db4cf35da45c2/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/e65e2d1acb3c3bb037f0183bdd3db4cf35da45c2/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/e65e2d1acb3c3bb037f0183bdd3db4cf35da45c2/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/e65e2d1acb3c3bb037f0183bdd3db4cf35da45c2/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/e65e2d1acb3c3bb037f0183bdd3db4cf35da45c2/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/e65e2d1acb3c3bb037f0183bdd3db4cf35da45c2/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.h

Project Member

Comment 271 by bugdroid1@chromium.org, Jul 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8264d60e9d2885b2cd657afff45be608c64d7410

commit 8264d60e9d2885b2cd657afff45be608c64d7410
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Sat Jul 01 00:58:12 2017

LayoutNG] Add min/max-{width,height} to instrinics check for abs-pos

Fixes failures for:
fast/css-intrinsic-dimensions/intrinsic-sized-absolutes.html
fast/css-intrinsic-dimensions/intrinsic-sized-replaced-absolutes.html

E.g. when min-width etc, are set to an intrinsic.
<iframe style="min-width: min-content;'></iframe>

See:
https://storage.googleapis.com/chromium-layout-test-archives/linux_layout_tests_layout_ng/622/layout-test-results/results.html

BUG=635619
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_layout_ng

Review-Url: https://codereview.chromium.org/2969433002
Cr-Commit-Position: refs/heads/master@{#483882}

[modify] https://crrev.com/8264d60e9d2885b2cd657afff45be608c64d7410/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/8264d60e9d2885b2cd657afff45be608c64d7410/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/8264d60e9d2885b2cd657afff45be608c64d7410/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc

Project Member

Comment 272 by bugdroid1@chromium.org, Jul 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b362497f43bbd6e95e901f5418dde03f3dfaf17

commit 8b362497f43bbd6e95e901f5418dde03f3dfaf17
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue Jul 11 16:56:59 2017

[LayoutNG] Move decision if a inline node is empty to CollectInlines.

This is to simplify bfc resolving "abort" code. Inside NGLineBreaker we
should be able to always have a resolved BFC offset with this change.

In a followup i'll move the unpositioned floats behaviour to a separate
walk if needed.

BUG=635619

Review-Url: https://codereview.chromium.org/2970343002
Cr-Commit-Position: refs/heads/master@{#485655}

[modify] https://crrev.com/8b362497f43bbd6e95e901f5418dde03f3dfaf17/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.cc
[modify] https://crrev.com/8b362497f43bbd6e95e901f5418dde03f3dfaf17/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.h
[modify] https://crrev.com/8b362497f43bbd6e95e901f5418dde03f3dfaf17/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/8b362497f43bbd6e95e901f5418dde03f3dfaf17/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/8b362497f43bbd6e95e901f5418dde03f3dfaf17/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.h
[modify] https://crrev.com/8b362497f43bbd6e95e901f5418dde03f3dfaf17/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_data.h
[modify] https://crrev.com/8b362497f43bbd6e95e901f5418dde03f3dfaf17/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/8b362497f43bbd6e95e901f5418dde03f3dfaf17/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/8b362497f43bbd6e95e901f5418dde03f3dfaf17/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc

Blockedon: 740993
Project Member

Comment 274 by bugdroid1@chromium.org, Jul 12 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f905d51bad504b4b43149637760b649aea7ddc24

commit f905d51bad504b4b43149637760b649aea7ddc24
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Jul 12 19:49:46 2017

[LayoutNG] Abort a layout once the BFC offset is resolved.

This patch allows layouts to "abort" if they have resolved their BFC offset.

This occurs when there is a previous sibling which has an unpositioned float
inside of it.
We resolve the BFC offset, then abort the layout up to the point where we can
begin the relayout (a parent which knows its BFC offset).

The algorithm in this state works exactly as before, except that floats are positioned
at their calculated BFC offset.

BUG=635619

Review-Url: https://codereview.chromium.org/2954953002
Cr-Commit-Position: refs/heads/master@{#486065}

[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/LayoutBlockFlow.h
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/f905d51bad504b4b43149637760b649aea7ddc24/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h

Project Member

Comment 275 by bugdroid1@chromium.org, Jul 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/987ca52741e0e4f0399de57732e4afd2382871cc

commit 987ca52741e0e4f0399de57732e4afd2382871cc
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jul 13 03:44:12 2017

[LayoutNG] Refactor of HandleInflow children.

This moves a bunch of code around and some additional comments.

Before the code for handling an inflow element was a little difficult to follow.
Now most of the code and complexities are inside HandleInflow. Functions which
this calls are now relatively simple.

BUG=635619

Review-Url: https://codereview.chromium.org/2975973002
Cr-Commit-Position: refs/heads/master@{#486260}

[modify] https://crrev.com/987ca52741e0e4f0399de57732e4afd2382871cc/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/987ca52741e0e4f0399de57732e4afd2382871cc/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/987ca52741e0e4f0399de57732e4afd2382871cc/third_party/WebKit/Source/core/layout/ng/ng_fragment.h

Project Member

Comment 276 by bugdroid1@chromium.org, Jul 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ea05d342e75fd13557b698a80b1685de9e94b3a0

commit ea05d342e75fd13557b698a80b1685de9e94b3a0
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jul 13 03:54:11 2017

[LayoutNG] Update TestExpecations

After inline+float patches these now pass.

BUG=635619
TBR=eae@chromium.org

Review-Url: https://codereview.chromium.org/2979913002
Cr-Commit-Position: refs/heads/master@{#486263}

[modify] https://crrev.com/ea05d342e75fd13557b698a80b1685de9e94b3a0/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 277 by bugdroid1@chromium.org, Jul 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d7c499c91d952d2a135f9ccde25ad876b974b3b3

commit d7c499c91d952d2a135f9ccde25ad876b974b3b3
Author: Aleks Totic <atotic@chromium.org>
Date: Thu Jul 13 16:36:35 2017

Bugfix: per spec, ignore oof nodes when computing MinMax size.

Bug: 635619
Change-Id: I57ce8f3a225d09fed054ffa102968c86d83c08f4
Reviewed-on: https://chromium-review.googlesource.com/568715
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#486410}
[modify] https://crrev.com/d7c499c91d952d2a135f9ccde25ad876b974b3b3/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/d7c499c91d952d2a135f9ccde25ad876b974b3b3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc

Project Member

Comment 278 by bugdroid1@chromium.org, Jul 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d82e3fae8315a1eee30b27522ccdb284bdd8ad3c

commit d82e3fae8315a1eee30b27522ccdb284bdd8ad3c
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jul 13 18:10:10 2017

[LayoutNG] Fix IsEmptyBlock check within block_layout_algorithm.

Previoiusly we were just checking fragment.BlockSize() which was error
prone as:
<div style="height: 0px;">text</div>
... would have been considered an empty block.

Now the check uses the presence of the BfcOffset on the child's layout
result. If it isn't present, the child must be empty.

BUG=635619

Review-Url: https://codereview.chromium.org/2982643002
Cr-Commit-Position: refs/heads/master@{#486440}

[modify] https://crrev.com/d82e3fae8315a1eee30b27522ccdb284bdd8ad3c/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/d82e3fae8315a1eee30b27522ccdb284bdd8ad3c/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h

Project Member

Comment 279 by bugdroid1@chromium.org, Jul 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8d8f44b58664f8e29248bfe502b0ae1503a690c4

commit 8d8f44b58664f8e29248bfe502b0ae1503a690c4
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Jul 17 21:50:20 2017

[LayoutNG] Make positioned floats actual children.

This makes floats actual children of the fragment which they belong to.

This fixes a few tests specifically for cases like:
<div id=cb><div id=float><div id=abs></div></div></div>

Here the float contains an OOF positioned element. This wasn't getting
passed up to its containing block as the float wasn't a regular
fragment.

Additionally it fixes:
<div id=has-border>text<div id=float></div>text</div>

In this case we wrapped the text and float in an anonymous fragment,
but we didn't adjust the floats position to the containing fragments
offset.

Bug: 635619
Change-Id: I806f9475a7424b83bd6a718147a9613894046de7
Reviewed-on: https://chromium-review.googlesource.com/570503
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487256}
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/inline/ng_baseline.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/inline/ng_bidi_paragraph.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_break_token.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/inline/ng_text_fragment.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/inline/ng_text_fragment_builder.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder_test.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[add] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.h
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.cc
[modify] https://crrev.com/8d8f44b58664f8e29248bfe502b0ae1503a690c4/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.h

Project Member

Comment 280 by bugdroid1@chromium.org, Jul 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692

commit 5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Tue Jul 18 18:10:49 2017

[layoutng] Implement CloneWithoutOffsets for fragments and layout results

This is a prerequisite for fragment caching (https://crrev.com/c/516042/)

Bug: 635619
Change-Id: I8d4995082b638c7073513dc2b11f4d01934fbe4a
Reviewed-on: https://chromium-review.googlesource.com/575652
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#487524}
[modify] https://crrev.com/5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.h
[modify] https://crrev.com/5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.h
[modify] https://crrev.com/5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h

Project Member

Comment 281 by bugdroid1@chromium.org, Jul 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1083c1c966c351a32d6ab41a0491bebbf22e661f

commit 1083c1c966c351a32d6ab41a0491bebbf22e661f
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Jul 20 02:10:10 2017

[LayoutNG] Margin collapsing complexity with empty blocks.

This patch does two things broadly...

1) If an empty block clears a float, we set the previous inflow
   position to the empty block *minus* the margin strut.

   This matches edges behaviour. I couldn't determine a sane behaviour
   for the other user agents.

2) If we resolve our BFC offset as a result of a child potentially
   clearing floats, *and* we have unpositioned direct float children,
   we set the previous inflow position to the top border edge, and
   reset the margin strut.

   I think this broadly matches other UAs behaviour, there is a note
   which I added about only forcing our BFC to resolve if
   unpositioned_floats_ contains the right type of float, but this
   can be looked at later.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I80ad01e12ad91f302b927103050055cffc6121f2
Reviewed-on: https://chromium-review.googlesource.com/577267
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488096}
[modify] https://crrev.com/1083c1c966c351a32d6ab41a0491bebbf22e661f/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/1083c1c966c351a32d6ab41a0491bebbf22e661f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/1083c1c966c351a32d6ab41a0491bebbf22e661f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/1083c1c966c351a32d6ab41a0491bebbf22e661f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/1083c1c966c351a32d6ab41a0491bebbf22e661f/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/1083c1c966c351a32d6ab41a0491bebbf22e661f/third_party/WebKit/Source/core/layout/ng/ng_space_utils.h

Project Member

Comment 282 by bugdroid1@chromium.org, Jul 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/32717cbfa2281290f151e084a24371f6395d75f2

commit 32717cbfa2281290f151e084a24371f6395d75f2
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Jul 20 22:37:14 2017

[LayoutNG] Fix margins on html element.

Existing layout is bizarre. Margins for a child are calculated inside the
childs layout. This includes the auto margins calculation as far as we
can tell.

This just does the "simple" margin calculation (no auto etc) as auto margins
etc only occur within block layout, which we now control.

We may have to refine this to include more behaviour if we discover other
cases we don't cover.

Bug: 635619
Change-Id: I944ae3435074441f06e118c59f8d2ad317227b32
Reviewed-on: https://chromium-review.googlesource.com/580291
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#488451}
[modify] https://crrev.com/32717cbfa2281290f151e084a24371f6395d75f2/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/32717cbfa2281290f151e084a24371f6395d75f2/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/32717cbfa2281290f151e084a24371f6395d75f2/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.h

Project Member

Comment 283 by bugdroid1@chromium.org, Jul 28 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e

commit 906e6dbe7651a60772888fcdfaa6abeba3b3ff0e
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Fri Jul 28 03:42:57 2017

[layoutng] Initial version of fragment caching

Design doc: https://docs.google.com/document/d/1RjH_Ofa8O_ucGvaDCEgsBVECPqUTiQKR3zNyVTr-L_I/edit

For now, this is turned off; can be enabled using:
  content_shell --enable-blink-features=LayoutNG,LayoutNGFragmentCaching

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I6c96a1a71f4eba0207238917c6de1f87ca08ba13
Reviewed-on: https://chromium-review.googlesource.com/516042
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#490246}
[modify] https://crrev.com/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e/third_party/WebKit/Source/core/layout/ng/README.md
[modify] https://crrev.com/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.h
[modify] https://crrev.com/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.h
[modify] https://crrev.com/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e/third_party/WebKit/Source/platform/RuntimeEnabledFeatures.json5

Project Member

Comment 284 by bugdroid1@chromium.org, Aug 4 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3fcca5f0cd8bdd3ebe7901a06df917a72be75453

commit 3fcca5f0cd8bdd3ebe7901a06df917a72be75453
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Aug 04 11:57:36 2017

[LayoutNG] Remove useless optional.

This was a mistake when I was initially writing this code.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ic67f0dd0364c9a03724c626b61c56632c8fa6605
Reviewed-on: https://chromium-review.googlesource.com/600310
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#491996}
[modify] https://crrev.com/3fcca5f0cd8bdd3ebe7901a06df917a72be75453/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/3fcca5f0cd8bdd3ebe7901a06df917a72be75453/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.h

Project Member

Comment 285 by bugdroid1@chromium.org, Aug 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c1ee4256ab3e4affcc2f637766e1273c3fa6f225

commit c1ee4256ab3e4affcc2f637766e1273c3fa6f225
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Aug 07 14:41:44 2017

[LayoutNG] Add top quirky margin support.

This adds support for quirky margins within a quirky container. E.g.

<body> <!-- quirky container -->
  <h1>Test</h1> <!-- top margins of h1 are ignored -->
</body>

This doesn't yet implement the bottom margin support, but has a TODO.
We need to switch table cells over to LayoutNG before implementing this
to make sure we are getting it right.

Passes a bunch more tests!

Bug: 635619
Change-Id: I3d2bcafc6cabfb0442f4bb13516a0c7876747cf6
Reviewed-on: https://chromium-review.googlesource.com/602187
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492314}
[modify] https://crrev.com/c1ee4256ab3e4affcc2f637766e1273c3fa6f225/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/c1ee4256ab3e4affcc2f637766e1273c3fa6f225/third_party/WebKit/Source/core/layout/ng/geometry/ng_margin_strut.cc
[modify] https://crrev.com/c1ee4256ab3e4affcc2f637766e1273c3fa6f225/third_party/WebKit/Source/core/layout/ng/geometry/ng_margin_strut.h
[modify] https://crrev.com/c1ee4256ab3e4affcc2f637766e1273c3fa6f225/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/c1ee4256ab3e4affcc2f637766e1273c3fa6f225/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/c1ee4256ab3e4affcc2f637766e1273c3fa6f225/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/c1ee4256ab3e4affcc2f637766e1273c3fa6f225/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h

Project Member

Comment 286 by bugdroid1@chromium.org, Aug 7 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/128e762c3c33a1f50910d7b3c7f30b4783ad3eeb

commit 128e762c3c33a1f50910d7b3c7f30b4783ad3eeb
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Aug 07 16:40:35 2017

[LayoutNG] Small cleanup + additional DCHECK from margin patch.

Just a small cleanup + additional DCHECK from when I looked at this code
again this morning.

There should be no functional changes.

Bug: 635619
Change-Id: Ib75cb30347f657a934d0151fa7d721e21316f5f1
Reviewed-on: https://chromium-review.googlesource.com/580191
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492338}
[modify] https://crrev.com/128e762c3c33a1f50910d7b3c7f30b4783ad3eeb/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc

Project Member

Comment 287 by bugdroid1@chromium.org, Aug 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f5224f5970efebccb2bff18aa2c1e81812317dc2

commit f5224f5970efebccb2bff18aa2c1e81812317dc2
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Aug 08 05:55:40 2017

[LayoutNG] Empty block clearing should contribute to content size.

A pretty simple fix, this just makes sure we adjust our size if an empty block
cleared something.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Iae53ae7eec7818756490bedeb25cac4ef3d9d53c
Reviewed-on: https://chromium-review.googlesource.com/603719
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492545}
[modify] https://crrev.com/f5224f5970efebccb2bff18aa2c1e81812317dc2/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/f5224f5970efebccb2bff18aa2c1e81812317dc2/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/f5224f5970efebccb2bff18aa2c1e81812317dc2/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h

Project Member

Comment 288 by bugdroid1@chromium.org, Aug 8 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/46f867a23c65bdadf3c894eead1111c129b668e3

commit 46f867a23c65bdadf3c894eead1111c129b668e3
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Aug 08 12:09:25 2017

[LayoutNG] More "interesting" behaviour with empty blocks clearance.

This is one addition to the empty block clearance behaviour added
previously. If we've been affected by clearance, we need to reset the
incoming margin strut and perform a re-layout in order to get the correct
end margin strut for positioning.

This is because the incoming margin strut doesn't "touch" the empty block
anymore.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ied3528672bb6544c047691d0c556c2f09497f52c
Reviewed-on: https://chromium-review.googlesource.com/582238
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#492599}
[modify] https://crrev.com/46f867a23c65bdadf3c894eead1111c129b668e3/third_party/WebKit/Source/core/layout/ng/geometry/ng_margin_strut.h
[modify] https://crrev.com/46f867a23c65bdadf3c894eead1111c129b668e3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/46f867a23c65bdadf3c894eead1111c129b668e3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc

Project Member

Comment 289 by bugdroid1@chromium.org, Aug 11 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a

commit 2f7bcee7d7fbd13cf799b5eb8c0adc971940155a
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Aug 11 23:05:30 2017

[LayoutNG] Fix clearance offset for floats.

I was beginning to make our floats immutable, and noticed that we were
calculating the clearance offset wrong. This fixes and removes a bunch
of unused functionality in preparation for the immutable patch.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ic005486798e9803a2fee79033d8bf1b4e33de540
Reviewed-on: https://chromium-review.googlesource.com/612489
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#493879}
[modify] https://crrev.com/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a/third_party/WebKit/Source/core/layout/ng/ng_exclusion.cc
[modify] https://crrev.com/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a/third_party/WebKit/Source/core/layout/ng/ng_exclusion.h
[modify] https://crrev.com/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a/third_party/WebKit/Source/core/layout/ng/ng_space_utils.h

Project Member

Comment 290 by bugdroid1@chromium.org, Aug 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/030d725a83dd028887d21dff36d4346f9f60a813

commit 030d725a83dd028887d21dff36d4346f9f60a813
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Aug 14 18:27:23 2017

[LayoutNG] Refactor of exclusion space.

This pulls the previous "NGExclusions" struct into a "NGExclusionSpace"
class, and moves a bunch of utility methods onto it.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ic9d600c759d4822f9d702c918297c014b250ec5c
Reviewed-on: https://chromium-review.googlesource.com/612623
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#494110}
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_exclusion.cc
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_exclusion.h
[add] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.cc
[add] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.h
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/030d725a83dd028887d21dff36d4346f9f60a813/third_party/WebKit/Source/core/layout/ng/ng_space_utils.h

Project Member

Comment 291 by bugdroid1@chromium.org, Aug 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d3bed518f4ff601c765a6adc3faadc3a547c3000

commit d3bed518f4ff601c765a6adc3faadc3a547c3000
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Aug 17 18:51:50 2017

[LayoutNG] Add documentation for BFC, BFCOffsets, and ExclusionSpace.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I9413139e84a423b9409df3bc19a5b6482aaf1b1d
Reviewed-on: https://chromium-review.googlesource.com/619317
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495258}
[modify] https://crrev.com/d3bed518f4ff601c765a6adc3faadc3a547c3000/third_party/WebKit/Source/core/layout/ng/BlockLayout.md

Project Member

Comment 292 by bugdroid1@chromium.org, Aug 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b

commit 884ff3fe73a13c13b809448cf7d9ec9d12ecad4b
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Aug 21 17:34:12 2017

[LayoutNG] Remove NGConstraintSpaceBuilder "copy" constructor.

This removes the NGConstraintSpaceBuilder copy constructor which
took a mutable constraint space. The constructor now just picks off
the writing_mode, and icb_size, which are the two things that are
strictly required.

This is in preparation for making NGExclusionSpace immutable when
passed between layouts, via a copy. (Needed to const-ify
NGConstraintSpace in the ng_float_utils.cc file. 

Bug: 635619
Change-Id: Id5cdd2dd33b8d4ee655c26a3ba5f87f046506f2c
Reviewed-on: https://chromium-review.googlesource.com/617062
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#495975}
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/NGInlineLayoutTest.cpp
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder_test.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.h
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h

Project Member

Comment 293 by bugdroid1@chromium.org, Aug 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/05c3ca735f2a3a73076083eeb36c679bdaa9ac11

commit 05c3ca735f2a3a73076083eeb36c679bdaa9ac11
Author: Chris Mumford <cmumford@chromium.org>
Date: Mon Aug 21 19:13:58 2017

Revert "[LayoutNG] Remove NGConstraintSpaceBuilder "copy" constructor."

This reverts commit 884ff3fe73a13c13b809448cf7d9ec9d12ecad4b.

Reason for revert: Compile failure on mac builder:

https://build.chromium.org/p/chromium.gpu/builders/GPU%20Mac%20Builder/builds/99796

Original change's description:
> [LayoutNG] Remove NGConstraintSpaceBuilder "copy" constructor.
> 
> This removes the NGConstraintSpaceBuilder copy constructor which
> took a mutable constraint space. The constructor now just picks off
> the writing_mode, and icb_size, which are the two things that are
> strictly required.
> 
> This is in preparation for making NGExclusionSpace immutable when
> passed between layouts, via a copy. (Needed to const-ify
> NGConstraintSpace in the ng_float_utils.cc file. 
> 
> Bug: 635619
> Change-Id: Id5cdd2dd33b8d4ee655c26a3ba5f87f046506f2c
> Reviewed-on: https://chromium-review.googlesource.com/617062
> Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
> Reviewed-by: Emil A Eklund <eae@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#495975}

TBR=eae@chromium.org,ikilpatrick@chromium.org

Change-Id: Icc12c6e160d6d315c23e63c490cced0057f35e40
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/624554
Reviewed-by: Chris Mumford <cmumford@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Chris Mumford <cmumford@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496014}
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/NGInlineLayoutTest.cpp
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder_test.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.h
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/05c3ca735f2a3a73076083eeb36c679bdaa9ac11/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h

Project Member

Comment 294 by bugdroid1@chromium.org, Aug 21 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/300313546581a64bd2cb78daaf1d0183fbd323ad

commit 300313546581a64bd2cb78daaf1d0183fbd323ad
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Aug 21 23:21:47 2017

[LayoutNG] Remove NGConstraintSpaceBuilder "copy" constructor.

Reland of:
https://chromium-review.googlesource.com/c/chromium/src/+/617062

This removes the NGConstraintSpaceBuilder copy constructor which
took a mutable constraint space. The constructor now just picks off
the writing_mode, and icb_size, which are the two things that are
strictly required.

This is in preparation for making NGExclusionSpace immutable when
passed between layouts, via a copy. (Needed to const-ify
NGConstraintSpace in the ng_float_utils.cc file.

Bug: 635619
Change-Id: I082066d3b6ad6ebd08beba0a1ef4101a5624a298
Reviewed-on: https://chromium-review.googlesource.com/624857
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496114}
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/NGInlineLayoutTest.cpp
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder_test.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.h
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/300313546581a64bd2cb78daaf1d0183fbd323ad/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h

Project Member

Comment 295 by bugdroid1@chromium.org, Aug 22 2017

Project Member

Comment 296 by bugdroid1@chromium.org, Aug 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1113d818fef977c9a2a88067003f0b12d1638f0c

commit 1113d818fef977c9a2a88067003f0b12d1638f0c
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Aug 23 10:09:07 2017

[LayoutNG] Fix CreatesNewFormattingContext.

This adds a simple IsBlock() check for NGLayoutInputNode's
CreatesNewFormattingContext check.

This fixes the case where an NGInlineNode was considered a new formatting
context for positioning purposes. E.g.

<div id=float>
  text text
</div>

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I6c8d35547979349661b1b05bdcfb5451d928d576
Reviewed-on: https://chromium-review.googlesource.com/572428
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496646}
[modify] https://crrev.com/1113d818fef977c9a2a88067003f0b12d1638f0c/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc

Project Member

Comment 297 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4

commit d6e0bb934a513d5b8e3a9fb6464eb821960e44a4
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Aug 24 01:06:34 2017

[LayoutNG] Make NGLayoutResult, NGConstraintSpace immutable.

This fixes the shared exclusion space which was being passed around a
block formatting context.

Instead of sharing currently it includes the NGExclusionSpace copy
constructor. This isn't optimal, but correct at the moment. We can
speed this up by override the NGExclusionSpace copy constructor to
share a backing vector + index into that vector.

The last bit to fix up is inside NGLineBreaker to rewind over floats.

The next followup will be constifying NGConstraintSpace everywhere.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ia0b17dddf5499d5c29980c0bce846e472998ad50
Reviewed-on: https://chromium-review.googlesource.com/621390
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496901}
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.h
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h

Project Member

Comment 298 by bugdroid1@chromium.org, Aug 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/598c96a32034ae482d5476faadc2f9a7c408fd30

commit 598c96a32034ae482d5476faadc2f9a7c408fd30
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Aug 24 04:23:36 2017

[LayoutNG] Make NGConstraintSpace const everywhere!

This constifies the NGConstraintSpace. There should be no behaviour
change.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I2244c75ef8ac24f3a6661964470d173575430ca5
Reviewed-on: https://chromium-review.googlesource.com/626576
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496948}
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/NGInlineLayoutTest.cpp
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.h
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.h
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_base_layout_algorithm_test.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_column_layout_algorithm.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_column_layout_algorithm.h
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/598c96a32034ae482d5476faadc2f9a7c408fd30/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc

Project Member

Comment 299 by bugdroid1@chromium.org, Aug 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a283b490d4920c214a7e367fe9fa19fdeace5160

commit a283b490d4920c214a7e367fe9fa19fdeace5160
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Aug 25 03:12:16 2017

[LayoutNG] Introduce NGBfcOffset, NGBfcRect \o/

This fixes a bunch of RTL issues we were seeing when
positioning floats.

Concretely now everything related to the BFC is calculated
in the {line_offset, block_offset} coordinate system.

Layout opportunities and the BFC offsets passed around are now
using these new types.

I didn't add any "magic" conversion utils, as they'd probably
be used wrong in the majority of cases.

Bug: 635619
Change-Id: I5dc175724e0732de2d4634708352d1bfa037e479
Reviewed-on: https://chromium-review.googlesource.com/631045
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#497309}
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/BUILD.gn
[add] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/geometry/ng_bfc_offset.cc
[add] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/geometry/ng_bfc_offset.h
[add] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/geometry/ng_bfc_rect.cc
[add] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/geometry/ng_bfc_rect.h
[delete] https://crrev.com/ef59f01cbf3a6652fab91198fda3e00b3c9ea8b4/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.cc
[delete] https://crrev.com/ef59f01cbf3a6652fab91198fda3e00b3c9ea8b4/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_exclusion.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_exclusion.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_space_utils.h
[modify] https://crrev.com/a283b490d4920c214a7e367fe9fa19fdeace5160/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.h

Project Member

Comment 300 by bugdroid1@chromium.org, Sep 1 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c836281c961fccb15ffb31c248b1947aa16af1b9

commit c836281c961fccb15ffb31c248b1947aa16af1b9
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Sep 01 21:06:48 2017

[LayoutNG] Change NGFragment to accept a reference instead of a pointer.

This also scopes down any NGFragment related classes to the minimum which
is needed.

Changes a few other related pieces of code to use const references.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I1ed13ce254aef4723c393877b5190295dcd12146
Reviewed-on: https://chromium-review.googlesource.com/646752
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#499295}
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment.h
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/inline/ng_text_fragment.h
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.cc
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.h
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/ng_column_layout_algorithm.cc
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/c836281c961fccb15ffb31c248b1947aa16af1b9/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc

Project Member

Comment 301 by bugdroid1@chromium.org, Sep 24 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e3e5e893c8cfd98aca703f32ec0f97fafaf5f5f

commit 2e3e5e893c8cfd98aca703f32ec0f97fafaf5f5f
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Sun Sep 24 11:46:36 2017

[LayoutNG] Fix some margin issues with positioning new FCs

This fixes a couple of simple issues I noticed before (but not
everything), namely:
 - Only consider the fragment's size when searching for a layout
   opportunity.
 - Adjust the origin_offset for searching for layout opportunities by
   the child's LineLeft margin.
 - Apply auto margins within the fitting layout opportunity.

I'm going to fix some other things in other patches. Namely, "auto"
children need to stretch to their layout opportunity, etc.

Soon we are going to need to rework the exclusion space layout opp
iterator algorithm as it doesn't appear to be handling right floats
correctly.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ibed8feefa793472a1a6d79b727151eaaadd822be
Reviewed-on: https://chromium-review.googlesource.com/661737
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503956}
[modify] https://crrev.com/2e3e5e893c8cfd98aca703f32ec0f97fafaf5f5f/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/2e3e5e893c8cfd98aca703f32ec0f97fafaf5f5f/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/2e3e5e893c8cfd98aca703f32ec0f97fafaf5f5f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/2e3e5e893c8cfd98aca703f32ec0f97fafaf5f5f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/2e3e5e893c8cfd98aca703f32ec0f97fafaf5f5f/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/2e3e5e893c8cfd98aca703f32ec0f97fafaf5f5f/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/2e3e5e893c8cfd98aca703f32ec0f97fafaf5f5f/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member

Comment 302 by bugdroid1@chromium.org, Sep 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cafe9a44f35e55dc8a7afac9ae9cc4b62b93a89f

commit cafe9a44f35e55dc8a7afac9ae9cc4b62b93a89f
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Sep 25 07:11:11 2017

[LayoutNG] Move handling of new FCs into their own code-path.

HandleInflow was trying to do too much, we had a lot of !is_new_fc
checks to skip large portions of code.

In a followup patch new FCs will have a re-layout path and doesn't
nicely fall into a "layout then position" mode.

In another followup I'll remove the UpdateContentSize to just compute
the new content_size_ (and perhaps rename to auto_block_size_). We
currently don't use (and won't for a while) max_inline_size_.

This should not have any behaviour change.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I1427fef8c4acbd0844bc1f2b91991294a372b91c
Reviewed-on: https://chromium-review.googlesource.com/680196
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#503997}
[modify] https://crrev.com/cafe9a44f35e55dc8a7afac9ae9cc4b62b93a89f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/cafe9a44f35e55dc8a7afac9ae9cc4b62b93a89f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h

Project Member

Comment 303 by bugdroid1@chromium.org, Oct 5 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/294b5f169d6c69ed9eaa2f98ddb7960169daaca8

commit 294b5f169d6c69ed9eaa2f98ddb7960169daaca8
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Oct 05 18:32:19 2017

[LayoutNG] Remove OverflowSize from box fragments for now.

... in favour of IntrinsicBlockSize(). We weren't using inline overflow
size, and "overflow" was incorrect for how it was being used.

This also moves it to the layout result.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Idd6c63dd5e0712c69f81bed21a03ad2be4c9331a
Reviewed-on: https://chromium-review.googlesource.com/701357
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@opera.com>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506799}
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.h
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_column_layout_algorithm.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/294b5f169d6c69ed9eaa2f98ddb7960169daaca8/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h

Project Member

Comment 304 by bugdroid1@chromium.org, Oct 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/66ac041a68867bba038144fa82d5b91d7ca55e19

commit 66ac041a68867bba038144fa82d5b91d7ca55e19
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Oct 06 04:25:44 2017

[LayoutNG] Handle 'auto' for new formatting contexts within a BFC.

This implements our current behaviour for 'auto' sized FCs within a BFC.

We need to perform layout twice under two scenarios:
 1. 'auto' inline size child. In this case we need to perform layout
    once, and if the child doesn't fit, we perform layout a second time
    with an "open" layout opportunity, so we can guarantee it will fit.

 2. Non-adjoining margin strut and unpositioned floats/current layout.
    In this case we need to perform a relayout as the BFCOffset where
    floats will be positioned will change. This happens if the child
    doesn't fit on the "top" of the exclusion space.

This also adds more TODOs everywhere which we can handle later.
I kept this as small as possible to keep sanity. :)

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I499dc9722fac47f43694f35c507e9d2742d317db
Reviewed-on: https://chromium-review.googlesource.com/680176
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506963}
[modify] https://crrev.com/66ac041a68867bba038144fa82d5b91d7ca55e19/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/66ac041a68867bba038144fa82d5b91d7ca55e19/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/66ac041a68867bba038144fa82d5b91d7ca55e19/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/66ac041a68867bba038144fa82d5b91d7ca55e19/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/66ac041a68867bba038144fa82d5b91d7ca55e19/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/66ac041a68867bba038144fa82d5b91d7ca55e19/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/66ac041a68867bba038144fa82d5b91d7ca55e19/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/66ac041a68867bba038144fa82d5b91d7ca55e19/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h

Project Member

Comment 305 by bugdroid1@chromium.org, Oct 6 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/077374eafc3252db5df33395650a01758cf4c16b

commit 077374eafc3252db5df33395650a01758cf4c16b
Author: Thiemo Nagel <tnagel@chromium.org>
Date: Fri Oct 06 11:15:59 2017

Revert "[LayoutNG] Handle 'auto' for new formatting contexts within a BFC."

This reverts commit 66ac041a68867bba038144fa82d5b91d7ca55e19.

Reason for revert: Speculative revert due to webkit layout failures (execution timing). This is the only CL in the regression range that seems to affect webkit.

https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win7%20%28dbg%29/builds/11417 

Original change's description:
> [LayoutNG] Handle 'auto' for new formatting contexts within a BFC.
> 
> This implements our current behaviour for 'auto' sized FCs within a BFC.
> 
> We need to perform layout twice under two scenarios:
>  1. 'auto' inline size child. In this case we need to perform layout
>     once, and if the child doesn't fit, we perform layout a second time
>     with an "open" layout opportunity, so we can guarantee it will fit.
> 
>  2. Non-adjoining margin strut and unpositioned floats/current layout.
>     In this case we need to perform a relayout as the BFCOffset where
>     floats will be positioned will change. This happens if the child
>     doesn't fit on the "top" of the exclusion space.
> 
> This also adds more TODOs everywhere which we can handle later.
> I kept this as small as possible to keep sanity. :)
> 
> Bug: 635619
> Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
> Change-Id: I499dc9722fac47f43694f35c507e9d2742d317db
> Reviewed-on: https://chromium-review.googlesource.com/680176
> Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
> Reviewed-by: Emil A Eklund <eae@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#506963}

TBR=dgrogan@chromium.org,eae@chromium.org,ikilpatrick@chromium.org

Change-Id: I7ae90715128234656b6ed4a8b619a542c538a2e6
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/704854
Reviewed-by: Thiemo Nagel <tnagel@chromium.org>
Commit-Queue: Thiemo Nagel <tnagel@chromium.org>
Cr-Commit-Position: refs/heads/master@{#507030}
[modify] https://crrev.com/077374eafc3252db5df33395650a01758cf4c16b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/077374eafc3252db5df33395650a01758cf4c16b/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/077374eafc3252db5df33395650a01758cf4c16b/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/077374eafc3252db5df33395650a01758cf4c16b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/077374eafc3252db5df33395650a01758cf4c16b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/077374eafc3252db5df33395650a01758cf4c16b/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/077374eafc3252db5df33395650a01758cf4c16b/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/077374eafc3252db5df33395650a01758cf4c16b/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h

Project Member

Comment 306 by bugdroid1@chromium.org, Oct 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/51cced5f78a1e7f7ab0cb74714c08f6bf083d0e8

commit 51cced5f78a1e7f7ab0cb74714c08f6bf083d0e8
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Oct 13 05:25:42 2017

[LayoutNG] Create a new line breaker for each line.

Ok! Time to start landing this sequence of changes!

This creates a new NGLineBreaker for each line, and plumbs
information which was missing from the break token to properly
instantiate the line breaker again.

This change should have no change on test results.

There is a very hacky patch: https://chromium-review.googlesource.com/c/709716/4
Which has the final "working" (modulo a few bugs) version of how
this will all end up.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: If2f040bcbf69a27a1421abea1cec676605ac38f9
Reviewed-on: https://chromium-review.googlesource.com/703512
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508607}
[modify] https://crrev.com/51cced5f78a1e7f7ab0cb74714c08f6bf083d0e8/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_break_token.cc
[modify] https://crrev.com/51cced5f78a1e7f7ab0cb74714c08f6bf083d0e8/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_break_token.h
[modify] https://crrev.com/51cced5f78a1e7f7ab0cb74714c08f6bf083d0e8/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/51cced5f78a1e7f7ab0cb74714c08f6bf083d0e8/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/51cced5f78a1e7f7ab0cb74714c08f6bf083d0e8/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/51cced5f78a1e7f7ab0cb74714c08f6bf083d0e8/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/51cced5f78a1e7f7ab0cb74714c08f6bf083d0e8/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc

Project Member

Comment 307 by bugdroid1@chromium.org, Oct 13 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ad6caa44d0d0d574f94e6b2513aeae37f85132ef

commit ad6caa44d0d0d574f94e6b2513aeae37f85132ef
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Oct 13 07:19:31 2017

Reland [LayoutNG] Handle 'auto' for new formatting contexts within a BFC.

This is a reland of: https://chromium-review.googlesource.com/c/chromium/src/+/680176
Which got pre-emptively reverted in: https://chromium-review.googlesource.com/c/chromium/src/+/704854

This implements our current behaviour for 'auto' sized FCs within a BFC.

We need to perform layout twice under two scenarios:
 1. 'auto' inline size child. In this case we need to perform layout
    once, and if the child doesn't fit, we perform layout a second time
    with an "open" layout opportunity, so we can guarantee it will fit.

 2. Non-adjoining margin strut and unpositioned floats/current layout.
    In this case we need to perform a relayout as the BFCOffset where
    floats will be positioned will change. This happens if the child
    doesn't fit on the "top" of the exclusion space.

This also adds more TODOs everywhere which we can handle later.
I kept this as small as possible to keep sanity. :)

TBR=eae@chromium.org

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I4ce9e633a53402c23a56d9c61eafe9ec3662b898
Reviewed-on: https://chromium-review.googlesource.com/717538
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508633}
[modify] https://crrev.com/ad6caa44d0d0d574f94e6b2513aeae37f85132ef/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/ad6caa44d0d0d574f94e6b2513aeae37f85132ef/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/ad6caa44d0d0d574f94e6b2513aeae37f85132ef/third_party/WebKit/Source/core/layout/LayoutTable.cpp
[modify] https://crrev.com/ad6caa44d0d0d574f94e6b2513aeae37f85132ef/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/ad6caa44d0d0d574f94e6b2513aeae37f85132ef/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/ad6caa44d0d0d574f94e6b2513aeae37f85132ef/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/ad6caa44d0d0d574f94e6b2513aeae37f85132ef/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/ad6caa44d0d0d574f94e6b2513aeae37f85132ef/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h

Project Member

Comment 308 by bugdroid1@chromium.org, Oct 14 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/339c7b13964f2660e7a3d457ed95b1c3c622e2f1

commit 339c7b13964f2660e7a3d457ed95b1c3c622e2f1
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Sat Oct 14 02:24:02 2017

[LayoutNG] Change NGPositionedFloat to have a NGBfcOffset.

... instead of a logical offset relative to its parent.

This simplifies the logic inside of ng_float_utils, and is convenient
for floats inside of lineboxes.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I5b16df1f7a296a4222da7092a3d8290af2359e92
Reviewed-on: https://chromium-review.googlesource.com/719262
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508915}
[modify] https://crrev.com/339c7b13964f2660e7a3d457ed95b1c3c622e2f1/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/339c7b13964f2660e7a3d457ed95b1c3c622e2f1/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/339c7b13964f2660e7a3d457ed95b1c3c622e2f1/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/339c7b13964f2660e7a3d457ed95b1c3c622e2f1/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/339c7b13964f2660e7a3d457ed95b1c3c622e2f1/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/339c7b13964f2660e7a3d457ed95b1c3c622e2f1/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/339c7b13964f2660e7a3d457ed95b1c3c622e2f1/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.cc
[modify] https://crrev.com/339c7b13964f2660e7a3d457ed95b1c3c622e2f1/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.h

Project Member

Comment 309 by bugdroid1@chromium.org, Oct 16 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1952fe806ae19463f2c5b082653b974258df7784

commit 1952fe806ae19463f2c5b082653b974258df7784
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Oct 16 04:28:09 2017

[LayoutNG] Create NGContainerFragmentBuilder.

This captures the common methods that are needed between
NGFragmentBuilder, and NGLineBoxFragmentBuilder.

I didn't place them into NGBaseFragmentBuilder, as text doesn't really
need them.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I5fe83a94021890bbe0a6a4e096a1aa2893138899
Reviewed-on: https://chromium-review.googlesource.com/706343
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#508981}
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.cc
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.h
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/ng_base_fragment_builder.cc
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/ng_base_fragment_builder.h
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/ng_column_layout_algorithm.cc
[add] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/ng_container_fragment_builder.cc
[add] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/ng_container_fragment_builder.h
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/1952fe806ae19463f2c5b082653b974258df7784/third_party/WebKit/Source/core/layout/ng/ng_page_layout_algorithm.cc

Project Member

Comment 311 by bugdroid1@chromium.org, Oct 17 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3686157f247f914fef142445e74f38ef42c3c6a5

commit 3686157f247f914fef142445e74f38ef42c3c6a5
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Oct 17 18:38:47 2017

[LayoutNG] Add Vector<NGPositionedFloat> to NGLayoutResult

This also changes NGLineBoxFragmentBuilder to return a NGLayoutResult,
instead of just a NGLineBoxPhysicalFragment.

The layout result isn't used yet, but will be soon \o/

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Id8bde11d7b2a7f3364d575e076b485bf2219e669
Reviewed-on: https://chromium-review.googlesource.com/721685
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509442}
[modify] https://crrev.com/3686157f247f914fef142445e74f38ef42c3c6a5/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/3686157f247f914fef142445e74f38ef42c3c6a5/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.h
[modify] https://crrev.com/3686157f247f914fef142445e74f38ef42c3c6a5/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/3686157f247f914fef142445e74f38ef42c3c6a5/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/3686157f247f914fef142445e74f38ef42c3c6a5/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h

Project Member

Comment 312 by bugdroid1@chromium.org, Oct 18 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d43f99b68cda849a6a6367548c82c205bf9ee1fd

commit d43f99b68cda849a6a6367548c82c205bf9ee1fd
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Oct 18 20:51:30 2017

[LayoutNG] Remove NGFragment::Offset in favour of ConvertToLogical

This was something I found yesterday, while looking at the remaining
ng-bot failures for the line-by-line patch.

We weren't calculating the NGFragment::Offset correctly (impossible
without a parent size), so I removed it in favour of:
NGPhysicalOffset::ConvertToLogical.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I88196b26d6702acf4c3b65a386eba04e2d4d1d33
Reviewed-on: https://chromium-review.googlesource.com/726299
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509866}
[modify] https://crrev.com/d43f99b68cda849a6a6367548c82c205bf9ee1fd/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/d43f99b68cda849a6a6367548c82c205bf9ee1fd/third_party/WebKit/Source/core/layout/ng/geometry/ng_physical_offset.cc
[modify] https://crrev.com/d43f99b68cda849a6a6367548c82c205bf9ee1fd/third_party/WebKit/Source/core/layout/ng/geometry/ng_physical_offset.h
[add] https://crrev.com/d43f99b68cda849a6a6367548c82c205bf9ee1fd/third_party/WebKit/Source/core/layout/ng/geometry/ng_physical_offset_test.cc
[modify] https://crrev.com/d43f99b68cda849a6a6367548c82c205bf9ee1fd/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/d43f99b68cda849a6a6367548c82c205bf9ee1fd/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[modify] https://crrev.com/d43f99b68cda849a6a6367548c82c205bf9ee1fd/third_party/WebKit/Source/core/layout/ng/ng_fragment.h

Project Member

Comment 313 by bugdroid1@chromium.org, Oct 19 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/efac657cfb5cb8fa935ae4c12b2bed66237f8fbc

commit efac657cfb5cb8fa935ae4c12b2bed66237f8fbc
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Oct 19 21:55:02 2017

[LayoutNG] Move PrepareLayout to NGBlockNode::FirstChild

This isn't ideal, but it does make things faster.

A few more tests pass (don't timeout) only 1-2 additional failure.
So a net win?

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Id95bdd4ebcfd2534dbbf07b50a730c9961349713
Reviewed-on: https://chromium-review.googlesource.com/726846
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510224}
[modify] https://crrev.com/efac657cfb5cb8fa935ae4c12b2bed66237f8fbc/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/efac657cfb5cb8fa935ae4c12b2bed66237f8fbc/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/efac657cfb5cb8fa935ae4c12b2bed66237f8fbc/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.h
[modify] https://crrev.com/efac657cfb5cb8fa935ae4c12b2bed66237f8fbc/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/efac657cfb5cb8fa935ae4c12b2bed66237f8fbc/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.h
[modify] https://crrev.com/efac657cfb5cb8fa935ae4c12b2bed66237f8fbc/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc

Project Member

Comment 314 by bugdroid1@chromium.org, Oct 20 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5

commit 22bf4229b40da1bbdb3f6bd5d327be069dd55ec5
Author: Koji Ishii <kojii@chromium.org>
Date: Fri Oct 20 23:38:21 2017

[LayoutNG] Keep child NGLayoutResult in NGLineBoxFragmentBuilder

This patch changes NGLineBoxFragmentBuilder to keep child
NGLayoutResult until it finalizes children offsets and descendant
box tree structure.

This is needed to give the final offsets (relative to the line box)
to e.g., out of flow descendants.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I850fec48bc32262437965bec7cd3cbf1df2e660d
Reviewed-on: https://chromium-review.googlesource.com/720590
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510612}
[modify] https://crrev.com/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.cc
[modify] https://crrev.com/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_box_state.h
[modify] https://crrev.com/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.h
[modify] https://crrev.com/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5/third_party/WebKit/Source/core/layout/ng/inline/ng_list_layout_algorithm.cc
[modify] https://crrev.com/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5/third_party/WebKit/Source/core/layout/ng/inline/ng_list_layout_algorithm.h
[modify] https://crrev.com/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5/third_party/WebKit/Source/core/layout/ng/ng_container_fragment_builder.cc
[modify] https://crrev.com/22bf4229b40da1bbdb3f6bd5d327be069dd55ec5/third_party/WebKit/Source/core/layout/ng/ng_container_fragment_builder.h

Project Member

Comment 315 by bugdroid1@chromium.org, Oct 23 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507

commit 6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Oct 23 07:44:15 2017

[LayoutNG] Switch NGInlineLayoutAlgorithm to producing lineboxes.

Hurray! Does what it says on the box.

NGInlineLayoutAlgorithm now will produce linebox-by-linebox feeding the
previous break token back into it.

NGBlockLayoutAlgorithm::HandleInfow now has some special logic to deal with
lineboxes, but this is to:
 1) Resolve the BFC offset early, (which we needed to do already for something
    else).
 2) Add positioned floats into the parent fragment.

NGInlineLayoutAlgorithm is simplified a little, there are three major followup
patches which need to be done.
 1) Simplify NGLineBreaker, and separate pass for empty inline with
    unpositioned floats. This will make NGLineBreaker v. simple (hopefully).
 2) Move NGInlineNode::CopyFragmentDataToLayoutBox into NGBlockNode.
 3) Implement a loop inside NGInlineLayoutAlgorithm to check the current layout
    opportunity block-size to see if it'll fit.

I think for speed reasons we'll want NGInlineNode::Layout to be a little special
in mutating the NGInlineBreakToken inplace, (to reduce copies), but this can be
done later.

This tries to keep feature parity with the current code, so there shouldn't
be any major regressions.

Bug: 635619

Change-Id: I04e9d4c454da6efab06286632366d954c6015a92
Reviewed-on: https://chromium-review.googlesource.com/709716
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#510727}
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/geometry/ng_margin_strut.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/geometry/ng_margin_strut.h
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_break_token.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_break_token.h
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.h
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.h
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator.h
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/6505ce96d0fdf1e53ef536ab3d1b29a5b53fa507/third_party/WebKit/Source/core/paint/ng/ng_text_fragment_painter_test.cc

Project Member

Comment 316 by bugdroid1@chromium.org, Oct 25 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ee7a3a553e1404217e656483a9db1e9acc543775

commit ee7a3a553e1404217e656483a9db1e9acc543775
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Oct 25 22:38:31 2017

[LayoutNG] Add separate path for empty inlines.

This cleans up a few things, and adds a simple path for empty inlines.
There should be no behaviour change.

Bug: 635619
Change-Id: I2d2eb780dff352c329f1277c610be436800d227c
Reviewed-on: https://chromium-review.googlesource.com/733847
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#511622}
[modify] https://crrev.com/ee7a3a553e1404217e656483a9db1e9acc543775/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item_result.cc
[modify] https://crrev.com/ee7a3a553e1404217e656483a9db1e9acc543775/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item_result.h
[modify] https://crrev.com/ee7a3a553e1404217e656483a9db1e9acc543775/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/ee7a3a553e1404217e656483a9db1e9acc543775/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/ee7a3a553e1404217e656483a9db1e9acc543775/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/ee7a3a553e1404217e656483a9db1e9acc543775/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/ee7a3a553e1404217e656483a9db1e9acc543775/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.h
[modify] https://crrev.com/ee7a3a553e1404217e656483a9db1e9acc543775/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/ee7a3a553e1404217e656483a9db1e9acc543775/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/ee7a3a553e1404217e656483a9db1e9acc543775/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc

Project Member

Comment 317 by bugdroid1@chromium.org, Oct 31 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f1b58d6a24dbac23582fbd4ffefbf1220b23e2c4

commit f1b58d6a24dbac23582fbd4ffefbf1220b23e2c4
Author: Aleks Totic <atotic@chromium.org>
Date: Tue Oct 31 01:53:07 2017

Add BlockLayout doc link

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I0d125fb3d1397e06566cc67e837b79559ae2f677
Reviewed-on: https://chromium-review.googlesource.com/731112
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#512709}
[modify] https://crrev.com/f1b58d6a24dbac23582fbd4ffefbf1220b23e2c4/third_party/WebKit/Source/core/layout/ng/README.md

Project Member

Comment 318 by bugdroid1@chromium.org, Nov 1

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e67f361f71539e00e26897a02d9a70debd6f2b74

commit e67f361f71539e00e26897a02d9a70debd6f2b74
Author: Aleks Totic <atotic@chromium.org>
Date: Wed Nov 01 21:34:17 2017

update passing virtual/layoutng tests

Bug: 635619
Change-Id: I90f55f60a8d85b0bdf3ba6fa934af3dfd401fc78
Reviewed-on: https://chromium-review.googlesource.com/749450
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513279}
[modify] https://crrev.com/e67f361f71539e00e26897a02d9a70debd6f2b74/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 319 by bugdroid1@chromium.org, Nov 1

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/86d41cbe1fe7c59d3f290e993e3285b9ab22a767

commit 86d41cbe1fe7c59d3f290e993e3285b9ab22a767
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Nov 01 23:27:52 2017

[LayoutNG] Implement line-box avoidance of floats correctly.

This asks for the layout opporunties up front, then iterates through them
attempting to construct a line for each one, until something fits.

There are two checks:
1) For the inline-size of a linebox, directly after the line breaker has run.
2) For the block-size, after we've determined the line-height.

Bug: 	635619
Change-Id: Icb88791be2c4d267b1361c4a7ed47dec71b9a87d
Reviewed-on: https://chromium-review.googlesource.com/742041
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513318}
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item.cc
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item.h
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item_result.cc
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_item_result.h
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_items_builder.cc
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.h
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.cc
[modify] https://crrev.com/86d41cbe1fe7c59d3f290e993e3285b9ab22a767/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.h

Project Member

Comment 320 by bugdroid1@chromium.org, Nov 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9ab000aec35d137f120d8044f4249e30d948b627

commit 9ab000aec35d137f120d8044f4249e30d948b627
Author: Takashi SAKAMOTO <tasak@google.com>
Date: Tue Nov 14 08:49:52 2017

Mark 6 virtua/layout_ng/fast/block/float/ tests as failing on Win.

virtual/layout_ng/fast/block/float/intruding-float-add-in-sibling-block-on-static-position.html
virtual/layout_ng/fast/block/float/intruding-float-add-in-sibling-block-on-static-position2.html
virtual/layout_ng/fast/block/float/overhanging-float-add-in-static-position-block.html
virtual/layout_ng/fast/block/float/overhanging-float-add-in-static-position-block2.html
virtual/layout_ng/fast/block/float/overhanging-float-remove-from-absolute-position-block.html
virtual/layout_ng/fast/block/float/overhanging-float-remove-from-absolute-position-block2.html

BUG=635619
TBR=dgozman

Change-Id: I74707ebf7aa96f9cc911dffd2a7de4d9c2aa6ddd
Reviewed-on: https://chromium-review.googlesource.com/768607
Commit-Queue: Takashi Sakamoto <tasak@google.com>
Reviewed-by: Takashi Sakamoto <tasak@google.com>
Cr-Commit-Position: refs/heads/master@{#516235}
[modify] https://crrev.com/9ab000aec35d137f120d8044f4249e30d948b627/third_party/WebKit/LayoutTests/TestExpectations

Cc: jdoerrie@chromium.org kojii@chromium.org
Issue 784778 has been merged into this issue.
Project Member

Comment 322 by bugdroid1@chromium.org, Nov 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c5d3db649f43b7368ebd410499c40a94606c71b8

commit c5d3db649f43b7368ebd410499c40a94606c71b8
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Nov 16 23:14:30 2017

[LayoutNG] Properly handle block-end borders.

We previously didn't correctly handle block-end borders.

This fixes a couple of subtle bugs:
 - We don't grow the block-size of a fragment if it doesn't have
   any content.
 - We expand to encapsulate floats first, then grow to encapsulate
   the border.

Bug: 	635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I7770a1d23a9c25fcab51e2e681e00e4b4d3e9d08
Reviewed-on: https://chromium-review.googlesource.com/770645
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517220}
[modify] https://crrev.com/c5d3db649f43b7368ebd410499c40a94606c71b8/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/c5d3db649f43b7368ebd410499c40a94606c71b8/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc

Project Member

Comment 323 by bugdroid1@chromium.org, Nov 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/70cc3460649cf9f7c971b9579297a247f813d868

commit 70cc3460649cf9f7c971b9579297a247f813d868
Author: Aleks Totic <atotic@chromium.org>
Date: Tue Nov 21 05:06:54 2017

Create NGBlockFlow for alt images

Bug: 635619
Change-Id: I912bb955af2c9ea8774aa82ddd13abeab81ca59a
Reviewed-on: https://chromium-review.googlesource.com/777390
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518129}
[modify] https://crrev.com/70cc3460649cf9f7c971b9579297a247f813d868/third_party/WebKit/Source/core/html/HTMLImageElement.cpp

Project Member

Comment 324 by bugdroid1@chromium.org, Nov 22

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/82142c1079050e84fdc48922dbe48070e09eac54

commit 82142c1079050e84fdc48922dbe48070e09eac54
Author: Aleks Totic <atotic@chromium.org>
Date: Wed Nov 22 17:21:48 2017

[ LayoutNG ] Update passing TestExpectations

Bug: 635619
Change-Id: I76d0f73bc7ae4f53d2060af30b3c9009927a514d
Reviewed-on: https://chromium-review.googlesource.com/784097
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518666}
[modify] https://crrev.com/82142c1079050e84fdc48922dbe48070e09eac54/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 325 by bugdroid1@chromium.org, Dec 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b94a547279578187bfa0081e168242d7a7307b73

commit b94a547279578187bfa0081e168242d7a7307b73
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Dec 06 23:35:27 2017

[LayoutNG] Implement intrincs which handle floats correctly.

The existing code for this LayoutBlock::ComputeBlockPreferredLogicalWidths
was actually reasonably good, but due to re-use of variables, and a few
things which happened over time made it a little convoluted.

This hopefully is easier to follow.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I6b80bc2228473108e18c5680783668259a8d91b2
Reviewed-on: https://chromium-review.googlesource.com/784675
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522253}
[modify] https://crrev.com/b94a547279578187bfa0081e168242d7a7307b73/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/b94a547279578187bfa0081e168242d7a7307b73/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/b94a547279578187bfa0081e168242d7a7307b73/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/b94a547279578187bfa0081e168242d7a7307b73/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/b94a547279578187bfa0081e168242d7a7307b73/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/b94a547279578187bfa0081e168242d7a7307b73/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/b94a547279578187bfa0081e168242d7a7307b73/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/b94a547279578187bfa0081e168242d7a7307b73/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h

Project Member

Comment 326 by bugdroid1@chromium.org, Dec 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dc7209d6feb86db1f1f3db0db40e9c97d8513d1c

commit dc7209d6feb86db1f1f3db0db40e9c97d8513d1c
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Dec 07 23:26:20 2017

[LayoutNG] Add float aware intrinsics for inline.

This makes the min/max content calculation for inlines float aware.
This is reasonably similar to the existing intrinsics calculation today, which is
different to how we calculate it for blocks.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ie0962143a083281b49c8290788fabfce9cae0b6c
Reviewed-on: https://chromium-review.googlesource.com/809942
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#522606}
[modify] https://crrev.com/dc7209d6feb86db1f1f3db0db40e9c97d8513d1c/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/dc7209d6feb86db1f1f3db0db40e9c97d8513d1c/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/dc7209d6feb86db1f1f3db0db40e9c97d8513d1c/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/dc7209d6feb86db1f1f3db0db40e9c97d8513d1c/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/dc7209d6feb86db1f1f3db0db40e9c97d8513d1c/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/dc7209d6feb86db1f1f3db0db40e9c97d8513d1c/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc

Project Member

Comment 327 by bugdroid1@chromium.org, Dec 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/050fc8562a5ad2931e50f65f6cdfd084a40349fd

commit 050fc8562a5ad2931e50f65f6cdfd084a40349fd
Author: Aleks Totic <atotic@chromium.org>
Date: Fri Dec 15 20:46:50 2017

[LayoutNG] Refactor NGOutOfFlowLayoutPart member variables

NGOutOfFlowLayoutPart used to have a single containing block,
and it was defined by a NGOOFLP member variables.

With inline containing blocks, we have multiple containing blocks,
defined by ContainingBlockInfo.

This CL moves definition of default containing block out of multiple
member variables into single ContainingBlockInfo.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I69dd499cb69c7e6fc56971e85882cd7e6241f99c
Reviewed-on: https://chromium-review.googlesource.com/829888
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#524455}
[modify] https://crrev.com/050fc8562a5ad2931e50f65f6cdfd084a40349fd/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/050fc8562a5ad2931e50f65f6cdfd084a40349fd/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h

Project Member

Comment 328 by bugdroid1@chromium.org, Jan 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f

commit a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Jan 09 00:30:45 2018

[LayoutNG] A more efficient/correct implementation of ExclusionSpace.

This uses a modified shelf algorithm, which exploits some properties of floats
much more aggressively than what we have in legacy/current I believe.

I added comments and diagrams everywhere. There are some things that can be done
to initially speed this up, like using std::binary_search to jump into the
appropriate place in vectors. So if you think this is worth it, let me know.

There is one quirk which I've noted with one of the unit-tests. Its a bunch of
extra code to support this, so i think the quirk is fine at the moment.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Iea41bb82518232388042aef1645ea9f87ea71f38
Reviewed-on: https://chromium-review.googlesource.com/830970
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#527829}
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/BUILD.gn
[add] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/exclusions/ng_exclusion_space.cc
[add] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/exclusions/ng_exclusion_space.h
[add] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/exclusions/ng_exclusion_space_test.cc
[add] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/exclusions/ng_layout_opportunity.h
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/geometry/ng_bfc_rect.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/geometry/ng_bfc_rect.h
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[delete] https://crrev.com/7431258886724a34681028ab108612fe9fbb45a1/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/ng_container_fragment_builder.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/ng_exclusion.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/ng_exclusion.h
[delete] https://crrev.com/7431258886724a34681028ab108612fe9fbb45a1/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.cc
[delete] https://crrev.com/7431258886724a34681028ab108612fe9fbb45a1/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.h
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[delete] https://crrev.com/7431258886724a34681028ab108612fe9fbb45a1/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[delete] https://crrev.com/7431258886724a34681028ab108612fe9fbb45a1/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[delete] https://crrev.com/7431258886724a34681028ab108612fe9fbb45a1/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[delete] https://crrev.com/7431258886724a34681028ab108612fe9fbb45a1/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h
[modify] https://crrev.com/a13443b5e1bdfc18522e155f3ef9e1fc7457dd7f/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc

Project Member

Comment 329 by bugdroid1@chromium.org, Jan 16

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4d9273e282eae42eae0c5cf035490e0d53c4daa2

commit 4d9273e282eae42eae0c5cf035490e0d53c4daa2
Author: Koji Ishii <kojii@chromium.org>
Date: Tue Jan 16 14:12:54 2018

[LayoutNG] Set ICB size to NGConstraintSpace for ComputeMinMaxSize

This patch sets ICB size to NGConstraintSpace for ComputeMinMaxSize
in NGInlineNode and NGBlockNode. This is necessary when the node has
orthogonal descendants.

This patch turns 11 crashes to pass and 29 crashes to failures.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ifebfb863b971f332a0f6baddb65668c75b4d373a
Reviewed-on: https://chromium-review.googlesource.com/867146
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#529416}
[modify] https://crrev.com/4d9273e282eae42eae0c5cf035490e0d53c4daa2/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/4d9273e282eae42eae0c5cf035490e0d53c4daa2/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/4d9273e282eae42eae0c5cf035490e0d53c4daa2/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/4d9273e282eae42eae0c5cf035490e0d53c4daa2/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/4d9273e282eae42eae0c5cf035490e0d53c4daa2/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h

Project Member

Comment 330 by bugdroid1@chromium.org, Jan 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a80e9800f8292a65548b038ce52cc3272c773ff1

commit a80e9800f8292a65548b038ce52cc3272c773ff1
Author: Aleks Totic <atotic@chromium.org>
Date: Sun Jan 28 06:57:21 2018

[LayoutNG] remove obsolete ng_macros.h

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I2fd589b4db0fbeba4b142d130fb95f9cb804bc49
Reviewed-on: https://chromium-review.googlesource.com/889681
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532266}
[modify] https://crrev.com/a80e9800f8292a65548b038ce52cc3272c773ff1/third_party/WebKit/Source/core/layout/BUILD.gn
[delete] https://crrev.com/28818f28100481efddeb4851fd0dd176b441ed39/third_party/WebKit/Source/core/layout/ng/ng_macros.h

Project Member

Comment 331 by bugdroid1@chromium.org, Jan 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6c31f3d1320909559c9660fc057703039dde7945

commit 6c31f3d1320909559c9660fc057703039dde7945
Author: Aleks Totic <atotic@chromium.org>
Date: Tue Jan 30 06:03:28 2018

[LayoutNG] Add "self-paint" to ShowFragmentTree output

Now the tree looks like this:
 Box (block-flow children-inline) offset:0,34 size:600x72
    LineBox offset:31,0 size:568x18
      Box (children-inline)(self paint) offset:0,-1 size:367x19
        Text offset:0,1 size:337x17 start: 30 end: 83
      Text offset:377,0 size:191x17 start: 1 end: 30
    LineBox offset:24,18 size:575x18
      Box (children-inline)(self paint) offset:0,-1 size:575x19
        Text offset:0,1 size:200x17 start: 144 end: 171
        Text offset:200,1 size:375x17 start: 84 end: 144
    LineBox offset:21,36 size:578x18

Useful when debugging painting.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I0901841736b7bbad9534a3ecbcc187c9b968d15c
Reviewed-on: https://chromium-review.googlesource.com/892103
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#532788}
[modify] https://crrev.com/6c31f3d1320909559c9660fc057703039dde7945/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/6c31f3d1320909559c9660fc057703039dde7945/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h

Project Member

Comment 332 by bugdroid1@chromium.org, Feb 23

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cea91b394645b8fe0c178a348dcdcc69bf734566

commit cea91b394645b8fe0c178a348dcdcc69bf734566
Author: Aleks Totic <atotic@chromium.org>
Date: Fri Feb 23 21:49:02 2018

[LayoutNG] Renable DCHECK

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I7f5f9420a4836606e0768e9ad12440e251294c19
Reviewed-on: https://chromium-review.googlesource.com/935283
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#538909}
[modify] https://crrev.com/cea91b394645b8fe0c178a348dcdcc69bf734566/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc

Project Member

Comment 333 by bugdroid1@chromium.org, Feb 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/87253340479603cb5b2cb7b1d09902cf4cdc8a22

commit 87253340479603cb5b2cb7b1d09902cf4cdc8a22
Author: Aleks Totic <atotic@chromium.org>
Date: Wed Feb 28 19:03:57 2018

[LayoutNG] Implement height calculation quirk

Spec: https://quirks.spec.whatwg.org/#the-percentage-height-calculation-quirk

It is bug compatible with Legacy. Two test results are interesting:

external/wpt/quirks/percentage-height-calculation.html

Here we pass/fail same tests except for one extra pass, and one extra fail.
Failure is <table>, due to invalidation

fast/block/basic/quirk-percent-height-table-cell.html

This is an overconstrained <td>. I think that NG rendering is correct, and it
matches FF.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I572571428c98fbd95abfea7539ca0ab6d16bbc06
Reviewed-on: https://chromium-review.googlesource.com/940335
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539910}
[modify] https://crrev.com/87253340479603cb5b2cb7b1d09902cf4cdc8a22/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/87253340479603cb5b2cb7b1d09902cf4cdc8a22/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/87253340479603cb5b2cb7b1d09902cf4cdc8a22/third_party/WebKit/Source/core/style/ComputedStyle.h

Project Member

Comment 334 by bugdroid1@chromium.org, Mar 14

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ade8cb76a2de0ba645e3c686e4d52e846b7975f5

commit ade8cb76a2de0ba645e3c686e4d52e846b7975f5
Author: Aleks Totic <atotic@chromium.org>
Date: Wed Mar 14 22:24:27 2018

[LayoutNG] owners:glebl->atotic

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I505e2e4e01ffba761a4c4ea2c699f71b9f3ed639
Reviewed-on: https://chromium-review.googlesource.com/963496
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#543220}
[modify] https://crrev.com/ade8cb76a2de0ba645e3c686e4d52e846b7975f5/third_party/WebKit/Source/core/layout/ng/OWNERS

Project Member

Comment 335 by bugdroid1@chromium.org, Mar 21

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b8d67afb4bd2302bb7c6effb00cbd02389af9020

commit b8d67afb4bd2302bb7c6effb00cbd02389af9020
Author: Aleks Totic <atotic@chromium.org>
Date: Wed Mar 21 19:45:45 2018

[LayoutNG] Fix missing image icon

Broken image was caused by not positioning of placed floats

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ifb60bee7defeaa9e4ca2bacab9c6607b482b5e8f
Reviewed-on: https://chromium-review.googlesource.com/973700
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#544805}
[modify] https://crrev.com/b8d67afb4bd2302bb7c6effb00cbd02389af9020/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/b8d67afb4bd2302bb7c6effb00cbd02389af9020/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc

Project Member

Comment 336 by bugdroid1@chromium.org, Mar 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/41daf5352477bf34f9b52748cb37a0751748994f

commit 41daf5352477bf34f9b52748cb37a0751748994f
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Fri Mar 30 00:47:09 2018

[layoutng] Correctly set the exclusion space when cloning

Due to variable shadowing the exclusion space was always null after
cloning, causing problems with fragment caching.

R=eae@chromium.org
BUG=635619

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I5aca88fdc693f1ad64848f43a108953bf1fc8f65
Reviewed-on: https://chromium-review.googlesource.com/986992
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#547045}
[modify] https://crrev.com/41daf5352477bf34f9b52748cb37a0751748994f/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc

Project Member

Comment 337 by bugdroid1@chromium.org, Apr 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/61059b5145039da9c803d031c4208f33c18f280e

commit 61059b5145039da9c803d031c4208f33c18f280e
Author: Aleks Totic <atotic@chromium.org>
Date: Sat Apr 07 01:47:31 2018

[LayoutNG] Refactor kMarginBorderPaddingSize into ResolveMarginBorderPaddingLength

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I7be19c9a12c52a78eec23f6a7cb06bbe7896593d
Reviewed-on: https://chromium-review.googlesource.com/988834
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#549011}
[modify] https://crrev.com/61059b5145039da9c803d031c4208f33c18f280e/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[delete] https://crrev.com/e12a8df8568268e56ddc4fc65c44a453980fe1c8/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/recursive-delay-update-scroll-expected.txt
[modify] https://crrev.com/61059b5145039da9c803d031c4208f33c18f280e/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/61059b5145039da9c803d031c4208f33c18f280e/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h

Project Member

Comment 338 by bugdroid1@chromium.org, Apr 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0e87999f80e974ea8320b9ea5c1f8ffad8bec479

commit 0e87999f80e974ea8320b9ea5c1f8ffad8bec479
Author: Aleks Totic <atotic@chromium.org>
Date: Tue Apr 17 00:02:56 2018

[LayoutNG] Constraint space should respect OverrideContainingBlockWidth/Height

Easy win, additional 72 tests pass.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I4c77bafcbce24245bac482c3fb3afe1f064e6f1c
Reviewed-on: https://chromium-review.googlesource.com/1014325
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551177}
[modify] https://crrev.com/0e87999f80e974ea8320b9ea5c1f8ffad8bec479/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/0e87999f80e974ea8320b9ea5c1f8ffad8bec479/third_party/blink/renderer/core/layout/ng/ng_constraint_space.cc

Project Member

Comment 339 by bugdroid1@chromium.org, Apr 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f7250409d92a41ef4a1ba68a9d8a2bbffc01e590

commit f7250409d92a41ef4a1ba68a9d8a2bbffc01e590
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Tue Apr 17 04:42:56 2018

[layoutng] Re-set the fragment after getting the cloned cached fragment

See the comments in the patch for why this is necessary.

R=eae@chromium.org, ikilpatrick@chromium.org

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I0a4042c0782c98fab1bfd27cb3bf6ca29c820542
Reviewed-on: https://chromium-review.googlesource.com/1013306
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551237}
[modify] https://crrev.com/f7250409d92a41ef4a1ba68a9d8a2bbffc01e590/third_party/blink/renderer/core/layout/ng/ng_block_node.cc

Project Member

Comment 340 by bugdroid1@chromium.org, Apr 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c9786f58aa023cb76bd5b3e8ed999a35c74acae

commit 3c9786f58aa023cb76bd5b3e8ed999a35c74acae
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Tue Apr 17 14:53:46 2018

[layoutng] Only clear the paint fragment if we get a successful layout

That way, we can keep around the old paint fragment while we wait for
a final new one.

This patch fixes a dcheck failure when enabling fragment caching.

R=kojii@chromium.org,eae@chromium.org

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I763446ab3411c828a636317421fd398f500be67f
Reviewed-on: https://chromium-review.googlesource.com/1012499
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551335}
[modify] https://crrev.com/3c9786f58aa023cb76bd5b3e8ed999a35c74acae/third_party/blink/renderer/core/layout/ng/ng_block_node.cc

Project Member

Comment 341 by bugdroid1@chromium.org, Apr 17

Labels: merge-merged-testbranch
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0e87999f80e974ea8320b9ea5c1f8ffad8bec479

commit 0e87999f80e974ea8320b9ea5c1f8ffad8bec479
Author: Aleks Totic <atotic@chromium.org>
Date: Tue Apr 17 00:02:56 2018

[LayoutNG] Constraint space should respect OverrideContainingBlockWidth/Height

Easy win, additional 72 tests pass.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I4c77bafcbce24245bac482c3fb3afe1f064e6f1c
Reviewed-on: https://chromium-review.googlesource.com/1014325
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#551177}
[modify] https://crrev.com/0e87999f80e974ea8320b9ea5c1f8ffad8bec479/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/0e87999f80e974ea8320b9ea5c1f8ffad8bec479/third_party/blink/renderer/core/layout/ng/ng_constraint_space.cc

Project Member

Comment 342 by bugdroid1@chromium.org, Apr 25

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5bdf8f5736c0ef4b5582d2a75c1575e92d4a6866

commit 5bdf8f5736c0ef4b5582d2a75c1575e92d4a6866
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Apr 25 22:04:29 2018

[LayoutNG] Remove unreachable if-stmt in float utils.

This if-stmt is now invalid as inside the NGExclusionSpace there is
always at least one opportunity which has a block-end offset of
LayoutUnit::Max().

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I4ca866e38b4aa764b3181c59e642e2a5be422a55
Reviewed-on: https://chromium-review.googlesource.com/1028351
Reviewed-by: Aleks Totic <atotic@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#553780}
[modify] https://crrev.com/5bdf8f5736c0ef4b5582d2a75c1575e92d4a6866/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc

Project Member

Comment 343 by bugdroid1@chromium.org, Apr 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/44c31170e5593569eed723bf0976a7099ca6e20d

commit 44c31170e5593569eed723bf0976a7099ca6e20d
Author: Aleks Totic <atotic@chromium.org>
Date: Mon Apr 30 14:34:20 2018

[LayoutNG] Anonymous blocks percentage size fix

Anonymous blocks were passing indefinite block percentage resolution size to
their children. The fix is to handle anonymous blocks like we do anonymous
fragments, and use ParentPercentageResolutionSize().

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I147e92570a60b84aa0b840201542d98c0517e82e
Reviewed-on: https://chromium-review.googlesource.com/1034094
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554745}
[modify] https://crrev.com/44c31170e5593569eed723bf0976a7099ca6e20d/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/44c31170e5593569eed723bf0976a7099ca6e20d/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/44c31170e5593569eed723bf0976a7099ca6e20d/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/44c31170e5593569eed723bf0976a7099ca6e20d/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/44c31170e5593569eed723bf0976a7099ca6e20d/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h

Project Member

Comment 344 by bugdroid1@chromium.org, Apr 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8f32b33451c348ed35bd744086537d5cfa4ee0ed

commit 8f32b33451c348ed35bd744086537d5cfa4ee0ed
Author: Aleks Totic <atotic@chromium.org>
Date: Mon Apr 30 23:24:10 2018

[LayoutNG] Remove bad rebaselines, update some newly passing tests

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ia67c37adbdfb1799567b27ae348dc3f4204f35bc
Reviewed-on: https://chromium-review.googlesource.com/1035615
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#554919}
[modify] https://crrev.com/8f32b33451c348ed35bd744086537d5cfa4ee0ed/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[delete] https://crrev.com/585c3f72947e4976c94d92abf347739d9358c8e3/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/overflow/overflow-compositing-descendant-expected.txt
[delete] https://crrev.com/585c3f72947e4976c94d92abf347739d9358c8e3/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/editing/selection/5131716-1-expected.txt
[delete] https://crrev.com/585c3f72947e4976c94d92abf347739d9358c8e3/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/html/layout-runs-and-floats-crash-expected.txt
[delete] https://crrev.com/585c3f72947e4976c94d92abf347739d9358c8e3/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/hdr/video-canvas-alpha-expected.txt
[delete] https://crrev.com/585c3f72947e4976c94d92abf347739d9358c8e3/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/ietestcenter/css3/bordersbackgrounds/background-color-applied-to-rounded-inline-element-expected.png
[delete] https://crrev.com/585c3f72947e4976c94d92abf347739d9358c8e3/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/ietestcenter/css3/bordersbackgrounds/border-radius-applies-to-001-expected.png
[delete] https://crrev.com/585c3f72947e4976c94d92abf347739d9358c8e3/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/scroll/repaint-during-scroll-with-zoom-expected.txt

Project Member

Comment 345 by bugdroid1@chromium.org, May 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d5553be841bed1ca2667cf74ba61ada7966cffda

commit d5553be841bed1ca2667cf74ba61ada7966cffda
Author: David Grogan <dgrogan@chromium.org>
Date: Thu May 03 18:32:58 2018

[LayoutNG] Add caption tests that NG fails

There are no existing tests (or any imported that I could find) that
verify captions' BFCs behave properly.

Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I56398bdd1ab6b993eaf8898e09b8aaa4b0ce0100
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1041219
Commit-Queue: David Grogan <dgrogan@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#555822}
[modify] https://crrev.com/d5553be841bed1ca2667cf74ba61ada7966cffda/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/d5553be841bed1ca2667cf74ba61ada7966cffda/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/d5553be841bed1ca2667cf74ba61ada7966cffda/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/floats/floats-in-table-caption-001-ref.html
[add] https://crrev.com/d5553be841bed1ca2667cf74ba61ada7966cffda/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/floats/floats-in-table-caption-001.html
[add] https://crrev.com/d5553be841bed1ca2667cf74ba61ada7966cffda/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/normal-flow/margin-collapsing-in-table-caption-001.html
[add] https://crrev.com/d5553be841bed1ca2667cf74ba61ada7966cffda/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/normal-flow/margin-collapsing-in-table-caption-002.html

Project Member

Comment 346 by bugdroid1@chromium.org, May 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5196ad73c485b672e567f82975711827873572a6

commit 5196ad73c485b672e567f82975711827873572a6
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Mon May 07 22:59:20 2018

[layoutng] Skip a flexbox optimization in LayoutNG

In LayoutNG, HasPercentHeightDescendants() does not produce correct results
and it is difficult to get it to produce correct results. Accordingly, let's
disable this optimization for now.

Bug: 635619, 839661
Change-Id: I766ea2fbea647eb9d0f3767b64788b678d328953
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/1043009
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556596}
[modify] https://crrev.com/5196ad73c485b672e567f82975711827873572a6/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/5196ad73c485b672e567f82975711827873572a6/third_party/blink/renderer/core/layout/layout_flexible_box.cc

Project Member

Comment 347 by bugdroid1@chromium.org, May 8

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b7cf33b30d94971a1e8bea2e7805f0a21cc4a3f0

commit b7cf33b30d94971a1e8bea2e7805f0a21cc4a3f0
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Tue May 08 19:19:17 2018

[layoutng] Don't cache fragments that contain abspos boxes

If we are a containing block for an abspos descendent, we can't
reuse the fragment because we don't know if the list of abspos
items has changed -- we need to let them bubble up during layout.

This is an unsatisfying solution in the long-term but should work
for now, and does fix some crashes/bugs when fragment caching is on.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I5ea5a742ed87a8f6546a1405c5935d4d8a7686b0
Reviewed-on: https://chromium-review.googlesource.com/1015327
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#556919}
[modify] https://crrev.com/b7cf33b30d94971a1e8bea2e7805f0a21cc4a3f0/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc

Project Member

Comment 348 by bugdroid1@chromium.org, May 9

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cfc7e69c51cc5372d95f60e2c5cd1301f2da6ebe

commit cfc7e69c51cc5372d95f60e2c5cd1301f2da6ebe
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed May 09 18:19:31 2018

[LayoutNG] Use StyleRef inside NGBlockNode::GetScrollbarSizes.

Small cleanup - there should be no behaviour change.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ife84f116812fc949f039418168b5d005096c46c2
Reviewed-on: https://chromium-review.googlesource.com/1052208
Reviewed-by: Aleks Totic <atotic@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557247}
[modify] https://crrev.com/cfc7e69c51cc5372d95f60e2c5cd1301f2da6ebe/third_party/blink/renderer/core/layout/ng/ng_block_node.cc

Project Member

Comment 349 by bugdroid1@chromium.org, May 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6e5d92efd2bfb6879835ab0c8859860f69cb1979

commit 6e5d92efd2bfb6879835ab0c8859860f69cb1979
Author: Aleks Totic <atotic@chromium.org>
Date: Thu May 10 02:29:13 2018

[LayoutNG] remove unused TriggerScrollbars from ConstraintSpace

Unfortunatelly, handling scrollbars in NG is delayed to next milestone.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I50ba6eb28ed040da2cbb8857c1b3eb84c3a609a3
Reviewed-on: https://chromium-review.googlesource.com/1053298
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557432}
[modify] https://crrev.com/6e5d92efd2bfb6879835ab0c8859860f69cb1979/third_party/blink/renderer/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/6e5d92efd2bfb6879835ab0c8859860f69cb1979/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/6e5d92efd2bfb6879835ab0c8859860f69cb1979/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/6e5d92efd2bfb6879835ab0c8859860f69cb1979/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h

Project Member

Comment 350 by bugdroid1@chromium.org, May 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/94e9a60557da0ad092e8f1022d5fb16292e9c9c5

commit 94e9a60557da0ad092e8f1022d5fb16292e9c9c5
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu May 10 18:55:59 2018

[LayoutNG] Switch LineSegment to using LayoutUnit's instead of floats.

There should be no behaviour change. This is done so we can modify the
LineSegment in LayoutNG to be in the correct coordinate system.

Bug: 635619
Change-Id: I4be2b099fc0731e0927b8a548a960ff00d9ddf9c
Reviewed-on: https://chromium-review.googlesource.com/1050487
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557607}
[modify] https://crrev.com/94e9a60557da0ad092e8f1022d5fb16292e9c9c5/third_party/WebKit/LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left-expected.txt
[modify] https://crrev.com/94e9a60557da0ad092e8f1022d5fb16292e9c9c5/third_party/WebKit/LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-left.html
[modify] https://crrev.com/94e9a60557da0ad092e8f1022d5fb16292e9c9c5/third_party/WebKit/LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right-expected.txt
[modify] https://crrev.com/94e9a60557da0ad092e8f1022d5fb16292e9c9c5/third_party/WebKit/LayoutTests/fast/shapes/shape-outside-floats/shape-outside-floats-ellipse-margin-right.html
[modify] https://crrev.com/94e9a60557da0ad092e8f1022d5fb16292e9c9c5/third_party/blink/renderer/core/layout/shapes/box_shape_test.cc
[modify] https://crrev.com/94e9a60557da0ad092e8f1022d5fb16292e9c9c5/third_party/blink/renderer/core/layout/shapes/shape.h
[modify] https://crrev.com/94e9a60557da0ad092e8f1022d5fb16292e9c9c5/third_party/blink/renderer/core/layout/shapes/shape_outside_info.cc

Project Member

Comment 351 by bugdroid1@chromium.org, May 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/00b2e0c77527fba4e94b7dc3aa5ab99e8a8d4433

commit 00b2e0c77527fba4e94b7dc3aa5ab99e8a8d4433
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu May 10 19:11:30 2018

[LayoutNG] Introduce NGLineLayoutOpportunity.

There should be no behaviour change in this patch. This introduces the
"line layout opportunity concept" which has:
 - A line size.
 - A float line size.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Ib8667a7c0909116da8e89cb2e20d9df66a2c401d
Reviewed-on: https://chromium-review.googlesource.com/1035617
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557614}
[modify] https://crrev.com/00b2e0c77527fba4e94b7dc3aa5ab99e8a8d4433/third_party/blink/renderer/core/layout/BUILD.gn
[modify] https://crrev.com/00b2e0c77527fba4e94b7dc3aa5ab99e8a8d4433/third_party/blink/renderer/core/layout/ng/exclusions/ng_layout_opportunity.h
[add] https://crrev.com/00b2e0c77527fba4e94b7dc3aa5ab99e8a8d4433/third_party/blink/renderer/core/layout/ng/exclusions/ng_line_layout_opportunity.h
[delete] https://crrev.com/47c575abefd23410eb2b4023a06b171dd3a8b64a/third_party/blink/renderer/core/layout/ng/geometry/ng_edge.h
[modify] https://crrev.com/00b2e0c77527fba4e94b7dc3aa5ab99e8a8d4433/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/00b2e0c77527fba4e94b7dc3aa5ab99e8a8d4433/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/00b2e0c77527fba4e94b7dc3aa5ab99e8a8d4433/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/00b2e0c77527fba4e94b7dc3aa5ab99e8a8d4433/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/00b2e0c77527fba4e94b7dc3aa5ab99e8a8d4433/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker_test.cc

Project Member

Comment 352 by bugdroid1@chromium.org, May 10

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78

commit d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78
Author: David Grogan <dgrogan@chromium.org>
Date: Thu May 10 19:50:08 2018

[LayoutNG] LayoutNG table-caption implementation

New passes fast/writing-mode/table-hit-test.html and
tables/mozilla_expected_failures/marvin* had been failing in LayoutNG
because the captions were not centered above the table, for some reason.

The rebased test fast/table/multiple-captions-display-expected.png
failed due to differences on the edges of text inside the caption.

New failure accessibility/table-caption.html fails because the js
accessibility controller can no longer see the caption as a table child,
for some reason.

Making tables/mozilla_expected_failures/bugs/bug3166-16.html pass will
need some digging. Legacy and NG before this patch centered the caption
above the table. But after this patch, it is moved left. Further,
hovering over the caption triggers a DCHECK in the hit testing stack, so
maybe we need to set an offset after all.

ng_physical_fragment.h(144)] Check failed: is_placed_.
blink::NGPhysicalFragment::Offset()
blink::NGPaintFragment::Offset()
blink::NGBoxFragmentPainter::NodeAtPoint()
blink::NGBlockFlowPainter::NodeAtPoint()
blink::LayoutNGMixin<>::NodeAtPoint()
blink::LayoutTable::NodeAtPoint()

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I7fcb33e791a9f0d812674a5f7f63cb5964c02a6e
Reviewed-on: https://chromium-review.googlesource.com/1050414
Commit-Queue: David Grogan <dgrogan@chromium.org>
Reviewed-by: Robert Ma <robertma@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#557632}
[modify] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/abspos/table-caption-is-containing-block-001.html
[add] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/abspos/table-caption-passes-abspos-up-001.html
[add] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/table/multiple-captions-display-expected.png
[modify] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/blink/renderer/core/layout/BUILD.gn
[modify] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/blink/renderer/core/layout/layout_object.cc
[modify] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/blink/renderer/core/layout/layout_table_caption.h
[modify] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
[modify] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h
[add] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/blink/renderer/core/layout/ng/layout_ng_table_caption.cc
[add] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/blink/renderer/core/layout/ng/layout_ng_table_caption.h
[modify] https://crrev.com/d0578d4aac2f59bb9041e8ccc3c5637bb17c3b78/third_party/blink/tools/blinkpy/web_tests/controllers/single_test_runner.py

Project Member

Comment 353 by bugdroid1@chromium.org, May 16 (4 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21

commit ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21
Author: Aleks Totic <atotic@chromium.org>
Date: Wed May 16 03:24:58 2018

[LayoutNG] Fix flipped block painting

NGBlockNode::CopyFragmentDataToLayoutBoxForInlineChildren
was not converting physical location to flipped blocks before
calling legacy.SetLocation

Fixing this exposed a cascade of vrl failures in different places.

After some detective work, I finally understood the fundamentals of
vrl painting. The big mystery that I kept running into was:
Paint(paint_offset), what coordinates was paint_offset in?

The answer is that paint_offset is in physical coordinates wrt containing layer,
unless parent is in FlippedBlocks writing mode.

In FlippedBlocks writing mode, the coordinates are:
"whatever value would make child's adjusted_offset physical, if adjusted_offset is
computed as adjusted_offset = paint_offset + box.Location()". The coordinates
have no other meaning.

This means that paint_offset is dependent on writing mode of the container,
and not the box itself. In NG, when child gets called with Paint(), there was
no way to determine whether paint_offset is FlippedBlocks or not, because
child has no access to parents.

To fix this, the cleanest way I've come up with was not to pass FlippedBlocks
coordinates when painting NG fragments. This only required modifying <10 places
where FlippedBlock transforms are made when painting.

static bool AdjustPaintOffsetScope::WillUseLegacyLocation(const LayoutBox* child)
returns true if block will use box.Location, instead of fragment.Offset().

All callers to Paint that flip blocks have to call this routine, and not flip if
it returns true.

I've also added utility routine to LayoutBox,
FlipForWritingModeForChildForPaint(const LayoutBox* child,LayoutPoint&) const
that only flips if child will not be painted with fragment.Offset().

There are also several other changes in existing code where we were not
flipping blocks before calling paint.

NodeAtPoint might need similar modification.

With these changes:
- additional 31 failing tests pass,
- there are two new crashes because LayoutNGTableCaption does not have an Offset()
- there are 2 tests that pass in NG only

Bug: 635619
Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_layout_tests_layout_ng;master.tryserver.chromium.linux:linux_layout_tests_slimming_paint_v2
Change-Id: I8e9d820337a2854871a00d3f0121e3a6f2ee1ebd
Reviewed-on: https://chromium-review.googlesource.com/1054002
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#558954}
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/layout/layout_box.cc
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/layout/layout_box.h
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/paint/adjust_paint_offset_scope.cc
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/paint/adjust_paint_offset_scope.h
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/paint/block_painter.cc
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.h
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/paint/table_painter.cc
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/paint/table_row_painter.cc
[modify] https://crrev.com/ca24cdbbdb9e49d2c5ad904bda90dc9de3346e21/third_party/blink/renderer/core/paint/table_section_painter.cc

Project Member

Comment 354 by bugdroid1@chromium.org, May 16 (4 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e68f203bf01cb0e78d6a68ed45e3c21834633cd1

commit e68f203bf01cb0e78d6a68ed45e3c21834633cd1
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed May 16 17:47:27 2018

[LayoutNG] Fix min/max sizes during layout and intrinsic passes.

Essentially this boils down to during min/max auto/percent/calc should be
treated the same, either being border+padding or infinity.

And during layout they should be taken into account.

I added some tests which now match FF/Edge (004,005) which LayoutNG matches, but
existing layout fails. The primary difference is change by passing kContent into
ResolveBlockLength during the ComputeBlockSizeForFragment function.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I4e0c171a0e29ea5d85a742d85df001647813c1f3
Reviewed-on: https://chromium-review.googlesource.com/1056291
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559171}
[modify] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/WebKit/LayoutTests/external/wpt/css/css-sizing/intrinsic-percent-non-replaced-004-ref.html
[add] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/WebKit/LayoutTests/external/wpt/css/css-sizing/intrinsic-percent-non-replaced-004.html
[add] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/WebKit/LayoutTests/external/wpt/css/css-sizing/intrinsic-percent-non-replaced-005-ref.html
[add] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/WebKit/LayoutTests/external/wpt/css/css-sizing/intrinsic-percent-non-replaced-005.html
[modify] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/dynamic/012-expected.txt
[modify] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.cc
[modify] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc
[modify] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/blink/renderer/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/e68f203bf01cb0e78d6a68ed45e3c21834633cd1/third_party/blink/renderer/core/layout/ng/ng_length_utils_test.cc

Project Member

Comment 355 by bugdroid1@chromium.org, May 17 (3 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/995d40250c1f2e7092182534bedfc0d134fc9c7b

commit 995d40250c1f2e7092182534bedfc0d134fc9c7b
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu May 17 00:43:28 2018

[LayoutNG] Adds support for shape-outside.

This reuses a lot of the existing code for shapes located within
core/layout/shape.

As a result of this after we perform a layout on a float, we need to
copy some additional shape data back into the existing tree so that the
ShapeOutsideInfo is up to date.

Devtools currently requires the ShapeOutsideInfo object to be up to
date for the appropriate LayoutBox object. (This is used to draw the
"shape area" when hovering on an element within devtools).

In the future (once everything has a NGLayoutResult) we'll likely be
able to remove the ShapeOutsideInfo object, and replace it with just a
"computed shape" living off the NGLayoutResult.

The majority of the work is done within ng_layout_opportunity.cc which
calculates a new line-layout-opportunity based on the shape area.

The rebaselines in this patch:
spec-examples/shape-outside-{010..019}-expected.txt
... are for "change detector tests". We do pass them in LayoutNG but
"better". (We place things closer to the shape typically). One LayoutNG
has been switched on we can fix/change these tests.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I029b1503be74b4a17e0a634ec93c644ff4352358
Reviewed-on: https://chromium-review.googlesource.com/1032884
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559368}
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-010-expected.txt
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-011-expected.txt
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-012-expected.txt
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-013-expected.txt
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-014-expected.txt
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-015-expected.txt
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-016-expected.txt
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-017-expected.txt
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-018-expected.txt
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-019-expected.txt
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/BUILD.gn
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/exclusions/ng_layout_opportunity.cc
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/exclusions/ng_layout_opportunity.h
[add] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/exclusions/ng_shape_exclusions.h
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/geometry/ng_box_strut.h
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/ng_exclusion.h
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/shapes/shape_outside_info.cc
[modify] https://crrev.com/995d40250c1f2e7092182534bedfc0d134fc9c7b/third_party/blink/renderer/core/layout/shapes/shape_outside_info.h

Project Member

Comment 356 by bugdroid1@chromium.org, May 17 (2 days ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3f840d763f0b03b8e1af7c65242f7cf0510aa237

commit 3f840d763f0b03b8e1af7c65242f7cf0510aa237
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Thu May 17 22:56:08 2018

[layoutng] Don't copy data to legacy for intermediate layouts

In some places, notably the min/max content calculation, we produce layout
results that are just for intermediate use, they are not final fragments
for a box. We should avoid creating paint fragments for them or copying
data to the legacy tree.

This becomes an issue in practice with fragment caching, because we may never
reach the code to produce the final fragment and fix up the paint fragment,
etc.

R=kojii@chromium.org,eae@chromium.org

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I012b599685a0f67060e6225c195e0e8205afad8e
Reviewed-on: https://chromium-review.googlesource.com/1064855
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#559718}
[modify] https://crrev.com/3f840d763f0b03b8e1af7c65242f7cf0510aa237/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/3f840d763f0b03b8e1af7c65242f7cf0510aa237/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
[modify] https://crrev.com/3f840d763f0b03b8e1af7c65242f7cf0510aa237/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/3f840d763f0b03b8e1af7c65242f7cf0510aa237/third_party/blink/renderer/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/3f840d763f0b03b8e1af7c65242f7cf0510aa237/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/3f840d763f0b03b8e1af7c65242f7cf0510aa237/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/3f840d763f0b03b8e1af7c65242f7cf0510aa237/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h

Project Member

Comment 357 by bugdroid1@chromium.org, Yesterday (46 hours ago)

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e27d5081d374448564dc0a13a4e6286c92872894

commit e27d5081d374448564dc0a13a4e6286c92872894
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Fri May 18 21:25:01 2018

[layoutng] Move IsIntermediateLayout check to IsBlockLayoutComplete

Also adds a missing SetIsIntermediateLayout when synthesizing
min/max content sizes.

Followup to https://chromium-review.googlesource.com/1064855

R=mstensho@chromium.org

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I857456a10f7c5372f8b83b72e2d6818e76b3dc5a
Reviewed-on: https://chromium-review.googlesource.com/1066306
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560047}
[modify] https://crrev.com/e27d5081d374448564dc0a13a4e6286c92872894/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/e27d5081d374448564dc0a13a4e6286c92872894/third_party/blink/renderer/core/layout/ng/ng_layout_utils.cc
[modify] https://crrev.com/e27d5081d374448564dc0a13a4e6286c92872894/third_party/blink/renderer/core/layout/ng/ng_layout_utils.h

Showing comments 258 - 357 of 357 Older

Sign in to add a comment