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

Issue 635619 link

Starred by 6 users

Issue metadata

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


Sign in to add a comment

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

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

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 334 - 433 of 433 Older
Project Member

Comment 334 by bugdroid1@chromium.org, Mar 14 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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 2018

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, May 18 2018

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

Project Member

Comment 358 by bugdroid1@chromium.org, May 22 2018

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

commit af53c613d2f89a026edbdc8b57e9346d45ea6fd8
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Tue May 22 23:56:34 2018

[layoutng] Refactor min/max content contribution a bit

Provide a helper function in ng_length_utils that calls
node.ComputeMinMaxContentSizes for you.

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

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: Id5e559aa1d9991f1e39d74fd84578ca2b7641883
Reviewed-on: https://chromium-review.googlesource.com/1069628
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#560840}
[modify] https://crrev.com/af53c613d2f89a026edbdc8b57e9346d45ea6fd8/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/af53c613d2f89a026edbdc8b57e9346d45ea6fd8/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/af53c613d2f89a026edbdc8b57e9346d45ea6fd8/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/af53c613d2f89a026edbdc8b57e9346d45ea6fd8/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/af53c613d2f89a026edbdc8b57e9346d45ea6fd8/third_party/blink/renderer/core/layout/ng/ng_length_utils.h

Project Member

Comment 359 by bugdroid1@chromium.org, Jun 1 2018

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

commit 698b5ec02d193c504533fbb297299a4bc25f8b6d
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Jun 01 17:21:14 2018

[LayoutNG] Shape fitting logic based off LineHeight.

This changes the fitting logic to be based off the LineHeight calculation,
instead of the "BlockSize" it was previously using. This makes us more
compatible with existing layout. This was making us infinite loop for a few
tests.

Additionally this fixes skipping shapes that we were previously considering in
the LineOffset computations.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I0aaf9bb1c6972648bee8bf73d4bdb21c5b09b9ee
Reviewed-on: https://chromium-review.googlesource.com/1081351
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@{#563697}
[modify] https://crrev.com/698b5ec02d193c504533fbb297299a4bc25f8b6d/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[delete] https://crrev.com/a1dee391232d54b3f32cb7db0518bfc84b88352c/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-010-expected.txt
[delete] https://crrev.com/a1dee391232d54b3f32cb7db0518bfc84b88352c/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-011-expected.txt
[delete] https://crrev.com/a1dee391232d54b3f32cb7db0518bfc84b88352c/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-012-expected.txt
[delete] https://crrev.com/a1dee391232d54b3f32cb7db0518bfc84b88352c/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-013-expected.txt
[delete] https://crrev.com/a1dee391232d54b3f32cb7db0518bfc84b88352c/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-014-expected.txt
[delete] https://crrev.com/a1dee391232d54b3f32cb7db0518bfc84b88352c/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-015-expected.txt
[delete] https://crrev.com/a1dee391232d54b3f32cb7db0518bfc84b88352c/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-016-expected.txt
[delete] https://crrev.com/a1dee391232d54b3f32cb7db0518bfc84b88352c/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-017-expected.txt
[delete] https://crrev.com/a1dee391232d54b3f32cb7db0518bfc84b88352c/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/external/wpt/css/css-shapes/spec-examples/shape-outside-018-expected.txt
[delete] https://crrev.com/a1dee391232d54b3f32cb7db0518bfc84b88352c/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/698b5ec02d193c504533fbb297299a4bc25f8b6d/third_party/blink/renderer/core/layout/ng/exclusions/ng_layout_opportunity.cc
[modify] https://crrev.com/698b5ec02d193c504533fbb297299a4bc25f8b6d/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/698b5ec02d193c504533fbb297299a4bc25f8b6d/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/698b5ec02d193c504533fbb297299a4bc25f8b6d/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h

Project Member

Comment 360 by bugdroid1@chromium.org, Jun 4 2018

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

commit 65472d6554b5ae232aa19936dcfd57fe2e15591a
Author: Aleks Totic <atotic@chromium.org>
Date: Mon Jun 04 20:59:39 2018

[LayoutNG] Fix LayoutBox::ComputePercentageLogicalHeight when OverrideContaining

This fixes many table tests where table<height:100%> inside body was
too tall by margin_border_padding,

The cause was that LayoutBox::ComputePercentageLogicalHeight
was incorrectly applying root_margin_border_padding_height correction
even when OverrideContainingBlockContentLogicalHeight was set.

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

Project Member

Comment 361 by bugdroid1@chromium.org, Jun 13 2018

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

commit c740e9566cecb197774f2f83c18b5759819ef07d
Author: Koji Ishii <kojii@chromium.org>
Date: Wed Jun 13 07:08:24 2018

[LayoutNG] Use legacy fallback for -webkit-box and -webkit-inline-box

This patch forces legacy fallback for -webkit-box and
-webkit-inline-box.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I15c35df5e71c03a2df6b466e2ba2197f48d5e588
Reviewed-on: https://chromium-review.googlesource.com/1089591
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566742}
[modify] https://crrev.com/c740e9566cecb197774f2f83c18b5759819ef07d/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/c740e9566cecb197774f2f83c18b5759819ef07d/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/deprecated-flexbox/crash-flexbox-no-layout-child-expected.txt
[modify] https://crrev.com/c740e9566cecb197774f2f83c18b5759819ef07d/third_party/blink/renderer/core/css/resolver/style_adjuster.cc

Project Member

Comment 362 by bugdroid1@chromium.org, Jun 13 2018

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

commit ab5657b71e199b060c72304b9139e96c6676e9c7
Author: Koji Ishii <kojii@chromium.org>
Date: Wed Jun 13 20:02:09 2018

[LayoutNG] Fix the static position of inline out-of-flow objects to honor text-align

This patch fixes the static position of an out-of-flow objects
to honor the 'text-align' property, when they have inline-type
'display' property, and their siblings are block-level.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I7c83f241984d079f9d3729e3bfbdb8bd428946a4
Reviewed-on: https://chromium-review.googlesource.com/1098750
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#566962}
[modify] https://crrev.com/ab5657b71e199b060c72304b9139e96c6676e9c7/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/ab5657b71e199b060c72304b9139e96c6676e9c7/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/ab5657b71e199b060c72304b9139e96c6676e9c7/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/ab5657b71e199b060c72304b9139e96c6676e9c7/third_party/blink/renderer/core/layout/ng/ng_length_utils.h

Project Member

Comment 363 by bugdroid1@chromium.org, Jun 15 2018

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

commit 1115c1a5770956d0c0184920c51990559eff3a74
Author: Aleks Totic <atotic@chromium.org>
Date: Fri Jun 15 15:53:34 2018

[LayoutNG] remove obsolete rebaseline

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I12d68f1153e78d4ebd8d3e92b7ab83a9f6e2f036
Reviewed-on: https://chromium-review.googlesource.com/1101905
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#567666}
[modify] https://crrev.com/1115c1a5770956d0c0184920c51990559eff3a74/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[delete] https://crrev.com/08b5d5225f2b04bfe08e17306f30981cb158bbe0/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/inline-block/14498-positionForCoordinates-expected.png

Project Member

Comment 364 by bugdroid1@chromium.org, Jun 20 2018

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

commit 17aec1261c54a7bafd2701b85a4f72b3d52072c8
Author: Koji Ishii <kojii@chromium.org>
Date: Wed Jun 20 14:26:51 2018

[LayoutNG] Rebaseline css2.1/t0905-c414-flt-wrap-01-d-g.html

This test has a failing baseline baked in the legacy, but
passes in NG.

Edge and Gecko pass (the same as this rebaseline.)

TBR=atotic@chromium.org
NOTRY=true

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I77f850b929af26a7e7eec9c3fff851476957985a
Reviewed-on: https://chromium-review.googlesource.com/1107859
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#568833}
[modify] https://crrev.com/17aec1261c54a7bafd2701b85a4f72b3d52072c8/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/17aec1261c54a7bafd2701b85a4f72b3d52072c8/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css2.1/t0905-c414-flt-wrap-01-d-g-expected.png
[add] https://crrev.com/17aec1261c54a7bafd2701b85a4f72b3d52072c8/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css2.1/t0905-c414-flt-wrap-01-d-g-expected.txt

Project Member

Comment 365 by bugdroid1@chromium.org, Jun 21 2018

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

commit ffbb5f57912ddba2c05257ccca5c1e0849eec764
Author: Koji Ishii <kojii@chromium.org>
Date: Thu Jun 21 09:07:23 2018

[LayoutNG] Fix dialog element positioning when it is out-of-flow

LayoutBlockFlow::UpdateBlockLayout() has a specialized
positioning for HTML <dialog> element when it is out-of-flow.

This patch implements the logic by sharing the code in
LayoutBlockFlow.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I16870f926dc0ad6fbb6bee4787f3f6d5e30b31c7
Reviewed-on: https://chromium-review.googlesource.com/1108240
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#569195}
[modify] https://crrev.com/ffbb5f57912ddba2c05257ccca5c1e0849eec764/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/ffbb5f57912ddba2c05257ccca5c1e0849eec764/third_party/blink/renderer/core/layout/layout_block_flow.cc
[modify] https://crrev.com/ffbb5f57912ddba2c05257ccca5c1e0849eec764/third_party/blink/renderer/core/layout/layout_block_flow.h
[modify] https://crrev.com/ffbb5f57912ddba2c05257ccca5c1e0849eec764/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc

Project Member

Comment 367 by bugdroid1@chromium.org, Jun 28 2018

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

commit 29b9eafeffa528388b7a3ed568f3abefd6de0594
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Thu Jun 28 00:02:33 2018

[layoutng] Override computeIntrinsicLogicalWidths so we can use the NG code for it

This is mostly straightforward, except that on Mac, we may have to
compute intrinsic sizes outside of layout. So this patch also adds
special code to avoid layout calls in such cases (for orthogonal
flows). However, this also required me to change some tests to have
the correct "inside of layout" state.

Notes on tests:
  fast/dynamic/012.html
    Had an incorrect rebaseline; rendering matches legacy modulo
    text splitting (positioning is the same)

  css2.1/20110323/table-height-algorithm-023.htm
  css2.1/20110323/table-height-algorithm-024.htm
    Parts of these tests were already using the smaller size due to
    1px text rendering differences; this rebaseline just makes us
    more consistent.

  tables/mozilla/bugs/bug57828.html
    Also a trivial 1px difference

  tables/mozilla/bugs/bug60992.html
    Probably an issue of bug 40634; legacy takes the whitespace before
    <br> (here, a linebreak) into account for calculating the width
    of the cell and NG does not.

  tables/mozilla_expected_failures/bugs/bug1010.html
    Also 1px and 2px text rendering difference

  virtual/layout_ng_experimental/external/wpt/css/css-flexbox/flexbox_stf-table-caption.html
    Fails for an unrelated reason, see newly filed bug 857185

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: Ia11317acd777aec201702fce28ebab74dba99b4f
Reviewed-on: https://chromium-review.googlesource.com/508293
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#570953}
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css2.1/20110323/table-height-algorithm-023-expected.txt
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/css2.1/20110323/table-height-algorithm-024-expected.txt
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/dynamic/012-expected.txt
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/tables/mozilla/bugs/bug57828-expected.png
[add] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/tables/mozilla/bugs/bug57828-expected.txt
[add] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/tables/mozilla/bugs/bug60992-expected.png
[add] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/tables/mozilla/bugs/bug60992-expected.txt
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/tables/mozilla_expected_failures/bugs/bug1010-expected.png
[add] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/tables/mozilla_expected_failures/bugs/bug1010-expected.txt
[add] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/WebKit/LayoutTests/virtual/layout_ng_experimental/fast/multicol/flexbox-with-overflow-auto-child-crash-expected.txt
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/min_max_size.cc
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/min_max_size.h
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/ng/layout_ng_block_flow.h
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/ng/ng_base_layout_algorithm_test.cc
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/ng/ng_base_layout_algorithm_test.h
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/29b9eafeffa528388b7a3ed568f3abefd6de0594/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc

Cc: -jdoerrie@chromium.org
Project Member

Comment 371 by bugdroid1@chromium.org, Jul 2

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

commit 367e0cedce5a3a98b84835fcb5b8ab9706322408
Author: Koji Ishii <kojii@chromium.org>
Date: Mon Jul 02 12:42:11 2018

[LayoutNG] Force legacy layout for fieldset elements

This is one missed LayoutBlockFlow-derived class that were
not handled yet, either by implementing LayoutNG counterpart
or by forcing legacy.

This isn't a big class, but since most form controls forces
legacy at its cloest BFC ancestor, it's reasonable to handle
when we support form controls.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I9a9bb1788e9fe8367d6ce8d9439aae3f243335de
Reviewed-on: https://chromium-review.googlesource.com/1122028
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#571875}
[modify] https://crrev.com/367e0cedce5a3a98b84835fcb5b8ab9706322408/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[delete] https://crrev.com/91ca88a0ea4b2cf820049d9158b0404c24935b47/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/css/invalidation/fieldset-disabled-expected.txt
[delete] https://crrev.com/91ca88a0ea4b2cf820049d9158b0404c24935b47/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/forms/006-expected.png
[modify] https://crrev.com/367e0cedce5a3a98b84835fcb5b8ab9706322408/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/forms/006-expected.txt
[modify] https://crrev.com/367e0cedce5a3a98b84835fcb5b8ab9706322408/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/forms/007-expected.txt
[delete] https://crrev.com/91ca88a0ea4b2cf820049d9158b0404c24935b47/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/custom/inline-svg-in-xhtml-expected.png
[modify] https://crrev.com/367e0cedce5a3a98b84835fcb5b8ab9706322408/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/custom/inline-svg-in-xhtml-expected.txt
[modify] https://crrev.com/367e0cedce5a3a98b84835fcb5b8ab9706322408/third_party/blink/renderer/core/html/forms/html_field_set_element.h

Project Member

Comment 372 by bugdroid1@chromium.org, Jul 3

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

commit ca3e1d157495ffb663b61b2b5834a77df741aac8
Author: Aleks Totic <atotic@chromium.org>
Date: Tue Jul 03 21:05:21 2018

[LayoutNG] Expectations cleanup

Fix "Unexpectedly passing" tests.
extend_by_character.html is a testharness test, did not need expectations.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I403480c0766cac166aa9ce2f9ddf778f63fea39e
Reviewed-on: https://chromium-review.googlesource.com/1124958
Commit-Queue: Aleks Totic <atotic@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572350}
[modify] https://crrev.com/ca3e1d157495ffb663b61b2b5834a77df741aac8/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/ca3e1d157495ffb663b61b2b5834a77df741aac8/third_party/WebKit/LayoutTests/TestExpectations
[delete] https://crrev.com/ab03b92c3aa91811eeb11f332f0a4fa06154c6d3/third_party/WebKit/LayoutTests/platform/linux/editing/selection/modify_extend/extend_by_character-expected.txt
[delete] https://crrev.com/ab03b92c3aa91811eeb11f332f0a4fa06154c6d3/third_party/WebKit/LayoutTests/platform/win/editing/selection/modify_extend/extend_by_character-expected.txt

Project Member

Comment 373 by bugdroid1@chromium.org, Jul 4

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

commit f99b2ca3a600a277b2bbd98fc8f9b765d3990a36
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Jul 04 08:45:16 2018

[LayoutNG] Make empty block end margins "inherit" quirkiness from start margins.

This is amazing. Essentially if an element has "default" quirky start
margins, and it is an empty block, the end margin (regardless of if it
is quirky or not), becomes quirky.

This doesn't propagate to other elements however, see:
https://www.software.hixie.ch/utilities/js/live-dom-viewer/?saved=6016

A bigger fix might be to change the default stylesheet to make all of
these elements with quirky margins to have quirky margins on each side,
then change the logic for the bottom quirkyness. But this is a pretty
scary change. (This may however match other browsers better eventually).

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I5895a148211a5a1291e9b0a935fea08e094d4ec0
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1124071
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572513}
[modify] https://crrev.com/f99b2ca3a600a277b2bbd98fc8f9b765d3990a36/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[delete] https://crrev.com/efc54545bfbf3faa42f874156b037f5e2888471f/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/invalid/table-residual-style-crash-expected.txt
[modify] https://crrev.com/f99b2ca3a600a277b2bbd98fc8f9b765d3990a36/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc

Project Member

Comment 374 by bugdroid1@chromium.org, Jul 4

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

commit 96e59ecfb9119ef5ca25efcfe2ba9ba12564cff4
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Jul 04 22:54:21 2018

[LayoutNG] Fix propagating MinMaxInput into children within a BFC.

This patch only passes the MinMaxInput struct to "inline" children,
(and via. an anonymous block).

The test cases which were failing can be simplified to:

<float></float>
<div>
  <float></float>
</div>

The <div> during the min/max calculation creates a new line.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I8b2842795b509538fbdde857709dfdce6d318ed5
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1125582
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572670}
[modify] https://crrev.com/96e59ecfb9119ef5ca25efcfe2ba9ba12564cff4/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/96e59ecfb9119ef5ca25efcfe2ba9ba12564cff4/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/block/float/overhanging-float-remove-from-fixed-position-block-expected.png
[modify] https://crrev.com/96e59ecfb9119ef5ca25efcfe2ba9ba12564cff4/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/fast/block/float/overhanging-float-remove-from-fixed-position-block2-expected.png
[modify] https://crrev.com/96e59ecfb9119ef5ca25efcfe2ba9ba12564cff4/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc

Project Member

Comment 375 by bugdroid1@chromium.org, Jul 5

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

commit 79f9539d44166b6e85c5e381fe41a526808a0dec
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Jul 05 05:51:49 2018

[LayoutNG] Remove adding out-of-flow children within PositionLeadingItems.

Now that we don't early exit if we are an empty linebox we can just rely
on the regular out-of-flow children adding pass.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I397a64e6d1df293d03c317dbfdf1f63a38f54206
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1126681
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#572714}
[modify] https://crrev.com/79f9539d44166b6e85c5e381fe41a526808a0dec/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc

Blockedon: 863865
Project Member

Comment 377 by bugdroid1@chromium.org, Jul 17

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

commit 02a52f516f88d6a2046d38c73957af363f35691c
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Tue Jul 17 03:55:17 2018

[layoutng] Use the correct layout algorithm to compute min/max sizes

This also required adding a check in NGBlockNode::ComputeMinMaxSize
for whether we are inside of PerformLayout -- on Mac, we can
compute preferred sizes outside of layout; however, we can't do
actual layout in that case, so we have to fallback to legacy
min/max size in this case (c.f. RenderViewImpl::CheckPreferredSize())

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I0caf0c6c79264074ccaf9f45b83a420950dab715
Reviewed-on: https://chromium-review.googlesource.com/1131562
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575545}
[modify] https://crrev.com/02a52f516f88d6a2046d38c73957af363f35691c/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/02a52f516f88d6a2046d38c73957af363f35691c/third_party/WebKit/LayoutTests/fast/multicol/intrinsic-width-expected.html
[add] https://crrev.com/02a52f516f88d6a2046d38c73957af363f35691c/third_party/WebKit/LayoutTests/fast/multicol/intrinsic-width.html
[modify] https://crrev.com/02a52f516f88d6a2046d38c73957af363f35691c/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/02a52f516f88d6a2046d38c73957af363f35691c/third_party/blink/renderer/core/layout/ng/ng_block_node.h

Project Member

Comment 378 by bugdroid1@chromium.org, Jul 17

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

commit 43df04fe7fe11a69605cfa669226ae74b91c41c2
Author: Mikel Astiz <mastiz@chromium.org>
Date: Tue Jul 17 08:11:30 2018

Revert "[layoutng] Use the correct layout algorithm to compute min/max sizes"

This reverts commit 02a52f516f88d6a2046d38c73957af363f35691c.

Reason for revert: suspect of causing test failures on multiple
bots for test flexbox-with-overflow-auto-child-crash.html.

Bug: 864402

Original change's description:
> [layoutng] Use the correct layout algorithm to compute min/max sizes
> 
> This also required adding a check in NGBlockNode::ComputeMinMaxSize
> for whether we are inside of PerformLayout -- on Mac, we can
> compute preferred sizes outside of layout; however, we can't do
> actual layout in that case, so we have to fallback to legacy
> min/max size in this case (c.f. RenderViewImpl::CheckPreferredSize())
> 
> Bug: 635619
> Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
> Change-Id: I0caf0c6c79264074ccaf9f45b83a420950dab715
> Reviewed-on: https://chromium-review.googlesource.com/1131562
> Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
> Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#575545}

TBR=cbiesinger@chromium.org,ikilpatrick@chromium.org,mstensho@chromium.org

Change-Id: I02d8cbfe883bafb2a3780ec46bd11b9e786678f4
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/1140033
Reviewed-by: Mikel Astiz <mastiz@chromium.org>
Commit-Queue: Mikel Astiz <mastiz@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575576}
[modify] https://crrev.com/43df04fe7fe11a69605cfa669226ae74b91c41c2/third_party/WebKit/LayoutTests/TestExpectations
[delete] https://crrev.com/0b46e1db3d88b762411614d6ae7bbe4f1d5cd6e0/third_party/WebKit/LayoutTests/fast/multicol/intrinsic-width-expected.html
[delete] https://crrev.com/0b46e1db3d88b762411614d6ae7bbe4f1d5cd6e0/third_party/WebKit/LayoutTests/fast/multicol/intrinsic-width.html
[modify] https://crrev.com/43df04fe7fe11a69605cfa669226ae74b91c41c2/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/43df04fe7fe11a69605cfa669226ae74b91c41c2/third_party/blink/renderer/core/layout/ng/ng_block_node.h

Project Member

Comment 379 by bugdroid1@chromium.org, Jul 17

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

commit 3bd8fefa9ff2719cd99bc26672b20a3ad7ff8666
Author: Peter Mayo <petermayo@chromium.org>
Date: Tue Jul 17 14:53:01 2018

Re-enable 2 layout_ng layout tests

https://chromium-review.googlesource.com/1132541 seems to also have
fixed these two:
layout_ng/fast/block/float/floats-offset-inline-block-strict-line-height.html
layout_ng/fast/block/float/floats-offset-image-strict-line-height.html

See https://test-results.appspot.com/dashboards/flakiness_dashboard.html#testType=webkit_layout_tests&tests=virtual/layout_ng/fast/block/float/floats-offset-image-strict-line-height.html%20virtual/layout_ng/fast/block/float/floats-offset-inline-block-strict-line-height.html

Bisected locally on linux.

Bug: 635619, 734554
Change-Id: If679447ec77b8bd41bf5ea6f7f10846751ce5cd8
Reviewed-on: https://chromium-review.googlesource.com/1140276
Reviewed-by: Peter Mayo <petermayo@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575639}
[modify] https://crrev.com/3bd8fefa9ff2719cd99bc26672b20a3ad7ff8666/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 380 by bugdroid1@chromium.org, Jul 18

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

commit 41ba8bb0cfbb0764bb80dad6c6b0fdc5512b5cab
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Wed Jul 18 00:31:47 2018

Reland "[layoutng] Use the correct layout algorithm to compute min/max sizes"

This reverts commit 43df04fe7fe11a69605cfa669226ae74b91c41c2.

Looks like there is no need for a flag-specific expectation anymore for
virtual/layout_ng_experimental/fast/multicol/flexbox-with-overflow-auto-child-crash.html

Original change's description:
> [layoutng] Use the correct layout algorithm to compute min/max sizes
>
> This also required adding a check in NGBlockNode::ComputeMinMaxSize
> for whether we are inside of PerformLayout -- on Mac, we can
> compute preferred sizes outside of layout; however, we can't do
> actual layout in that case, so we have to fallback to legacy
> min/max size in this case (c.f. RenderViewImpl::CheckPreferredSize())
>
> Bug: 635619
> Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
> Change-Id: I0caf0c6c79264074ccaf9f45b83a420950dab715
> Reviewed-on: https://chromium-review.googlesource.com/1131562
> Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
> Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#575545}

Bug: 635619
Change-Id: I28ca2367e21327d9f911c75b9f9950d171d48e1b
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Reviewed-on: https://chromium-review.googlesource.com/1140206
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#575872}
[modify] https://crrev.com/41ba8bb0cfbb0764bb80dad6c6b0fdc5512b5cab/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/41ba8bb0cfbb0764bb80dad6c6b0fdc5512b5cab/third_party/WebKit/LayoutTests/fast/multicol/intrinsic-width-expected.html
[add] https://crrev.com/41ba8bb0cfbb0764bb80dad6c6b0fdc5512b5cab/third_party/WebKit/LayoutTests/fast/multicol/intrinsic-width.html
[delete] https://crrev.com/113cc2d54f97a1384ecc5c3a0b8bcddbd0c3765f/third_party/WebKit/LayoutTests/virtual/layout_ng_experimental/fast/multicol/flexbox-with-overflow-auto-child-crash-expected.txt
[modify] https://crrev.com/41ba8bb0cfbb0764bb80dad6c6b0fdc5512b5cab/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/41ba8bb0cfbb0764bb80dad6c6b0fdc5512b5cab/third_party/blink/renderer/core/layout/ng/ng_block_node.h

Project Member

Comment 381 by bugdroid1@chromium.org, Jul 18

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

commit 9579e5a163b57496c4a09095b3cfe790c56f50e7
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Jul 18 20:37:55 2018

[LayoutNG] Avoid copying a shelf in loop of NGExclusionSpace::Add.

Every pass of the ExclusionSpace::Add loop invoked a copy of a shelf
optimistically. This isn't needed for every pass, and only needed for
the single pass where we are actually going to add the shelf.

(there is potential to remove additional copies, but we'll see if that
is needed later).

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: Ia7cdafc71bf0ea0c657763957ef8c5e0e0953382
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1140521
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576192}
[modify] https://crrev.com/9579e5a163b57496c4a09095b3cfe790c56f50e7/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc

Project Member

Comment 382 by bugdroid1@chromium.org, Jul 19

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

commit b8407884b68108ac67fc2fcf558fc98e99f527af
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Jul 19 17:31:53 2018

[LayoutNG] Reduce the copy cost of NGExclusionSpace to a tiny amount.

This changes the NGExclusionSpace to use a re-generatable data-structure
called "DerivedGeometry". This contains the representation which is used
to perform queries on the exclusion space.

At a high level exclusion spaces maintain their immutability by copying
each time the information is moved from one algorithm to another (either
up or down the tree).

As exclusions can *only* be added, we exploit this, by making all
exclusion spaces within a "copy-chain" within the same formatting
context share same list of exclusions. If an exclusion gets added
out-of-order e.g. when we are retrying a layout, the exclusions have a
copy-on-write performed.

We also exploit the fact that the expensive re-generatable
data-structure typically only is used by the last exclusion space in the
copy-chain, so within the copy-constructor we always std::move this to
the newly created exclusion space.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I82deed9b6147d1facd4429ba48cb5f0e1763c418
Reviewed-on: https://chromium-review.googlesource.com/1142468
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@{#576544}
[modify] https://crrev.com/b8407884b68108ac67fc2fcf558fc98e99f527af/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
[modify] https://crrev.com/b8407884b68108ac67fc2fcf558fc98e99f527af/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h
[modify] https://crrev.com/b8407884b68108ac67fc2fcf558fc98e99f527af/third_party/blink/renderer/platform/wtf/ref_vector.h

Project Member

Comment 383 by bugdroid1@chromium.org, Jul 20

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

commit 31da4fe3ccb0bf3848c54f4b6523ead2b93b9222
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Jul 20 04:26:35 2018

[LayoutNG] Remove NGConstraintSpace allocation when computing float inline-size.

This shouldn't have any behaviour change. Instead of using the
ComputeInlineSizeForFragment call directly, we optimistically perform layout
on the float to determine this size.

This saves an allocation of an NGConstraintSpace (and simplifies the code
dramatically), which results in a 25% perf increase in some float
benchmarks (see previous pinpoint result).

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I111e62a4c16c206473085ebd309719f017196959
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1143882
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#576778}
[modify] https://crrev.com/31da4fe3ccb0bf3848c54f4b6523ead2b93b9222/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/31da4fe3ccb0bf3848c54f4b6523ead2b93b9222/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc

Project Member

Comment 384 by bugdroid1@chromium.org, Jul 21

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

commit e59c208d6184b5a4b52272b9900a7177553c707a
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Sat Jul 21 04:13:52 2018

[LayoutNG] Remove small allocation of NGConstraintSpace for floats.

This removes a NGConstraintSpace allocation inside:
NGBlockLayoutAlgorithm::CalculateMarings

This doesn't have a perf impact, but will make it easier to potentially
move margins onto layout results.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I83d6d1f61e2f9bd8f94eed395e759bd01d6cbe78
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1145460
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#577067}
[modify] https://crrev.com/e59c208d6184b5a4b52272b9900a7177553c707a/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/e59c208d6184b5a4b52272b9900a7177553c707a/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/e59c208d6184b5a4b52272b9900a7177553c707a/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/e59c208d6184b5a4b52272b9900a7177553c707a/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/e59c208d6184b5a4b52272b9900a7177553c707a/third_party/blink/renderer/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/e59c208d6184b5a4b52272b9900a7177553c707a/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/e59c208d6184b5a4b52272b9900a7177553c707a/third_party/blink/renderer/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/e59c208d6184b5a4b52272b9900a7177553c707a/third_party/blink/renderer/core/layout/ng/ng_unpositioned_float.cc
[modify] https://crrev.com/e59c208d6184b5a4b52272b9900a7177553c707a/third_party/blink/renderer/core/layout/ng/ng_unpositioned_float.h

Project Member

Comment 385 by bugdroid1@chromium.org, Jul 28

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

commit aaa0f22fb2131e09f8d0146c5d5e0ff6b06494e3
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Sat Jul 28 04:59:27 2018

[LayoutNG] Make fragmenting floats use util method for ignoring block-start margins.

This is just a cleanup and should have no behavioral change.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: If69feb08df2f5247e09654d7ae0d7d1201a2d47a
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1150623
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#578914}
[modify] https://crrev.com/aaa0f22fb2131e09f8d0146c5d5e0ff6b06494e3/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc

Project Member

Comment 386 by bugdroid1@chromium.org, Jul 30

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

commit baf9180b44d59fe3fe7e48dcd0d9821372f5c611
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Jul 30 16:36:53 2018

[LayoutNG] Add support for negative margins and new formatting contexts

This does two things:
1. Allows a new formatting context to be sized and positioned outside
   its layout opportunity when negative margins are present.
   This occurs when a layout opportunity inline dimensions matches the
   initial child available space (ignoring floats).
   Additionally when a new formatting context "jumps out" of its layout
   opportunity it ignores any floats which might impede it.
2. Performs layout inside an opportunity, and then checks if the result
   can fit within the same opportunity. Previously we were trying to
   position in an arbitrary layout opportunity, which fails the
   new-fc-relayout.html test.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I6b44b6273be5c0f633e39a8875cc54ea0bc54480
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1150849
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579064}
[modify] https://crrev.com/baf9180b44d59fe3fe7e48dcd0d9821372f5c611/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/baf9180b44d59fe3fe7e48dcd0d9821372f5c611/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/floats/new-fc-relayout.html
[add] https://crrev.com/baf9180b44d59fe3fe7e48dcd0d9821372f5c611/third_party/WebKit/LayoutTests/external/wpt/css/CSS2/floats/zero-width-floats-positioning.html
[modify] https://crrev.com/baf9180b44d59fe3fe7e48dcd0d9821372f5c611/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/baf9180b44d59fe3fe7e48dcd0d9821372f5c611/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.h

Project Member

Comment 387 by bugdroid1@chromium.org, Jul 30

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

commit efce0626b26a44a65c39b4dbd8bf9a06105be3f5
Author: Koji Ishii <kojii@chromium.org>
Date: Mon Jul 30 19:02:50 2018

[LayoutNG] Exclude SelfPaintingLayer from ContentsInkOverflow

This patch excludes SelfPaintingLayer fragments, such as
'visibility: hidden', from ContentsInkOverflow, by following
the logic in LayoutBox::AddOverflowFromChild.

Seems to fix 10 tests. 2 layer dump rebaselines are no longer
needed, but
compositing/iframes/floating-self-painting-frame.html
starts failing. Somehow we fail to invalidate the self
painting layer created by iframe.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I09ab9a5fa2c062acf4d5cd37225e5c8f756ad04b
Reviewed-on: https://chromium-review.googlesource.com/1155029
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579107}
[modify] https://crrev.com/efce0626b26a44a65c39b4dbd8bf9a06105be3f5/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[delete] https://crrev.com/8d90752f4de56af3f18685a73d7b9ce23458f698/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/geometry/bounds-ignores-hidden-dynamic-expected.txt
[delete] https://crrev.com/8d90752f4de56af3f18685a73d7b9ce23458f698/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/compositing/layer-creation/overlap-transformed-preserved-3d-expected.txt
[delete] https://crrev.com/8d90752f4de56af3f18685a73d7b9ce23458f698/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/scroll/overflow-scroll-composited-non-stacking-child-expected.txt
[modify] https://crrev.com/efce0626b26a44a65c39b4dbd8bf9a06105be3f5/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.cc

Project Member

Comment 388 by bugdroid1@chromium.org, Jul 30

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

commit a79679f09da5415fe1af2a14549b9c9095f49a61
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Jul 30 20:24:54 2018

[LayoutNG] Cleanup where we set the new exclusion space.

We don't need two separate logic paths to set the exclusion space.
We are able to update the exclusion space once we know we have a
successful child layout.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I7aaa7ecfde69c4fedb71bbb77c2ccf4fc21aacf9
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1147331
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579146}
[modify] https://crrev.com/a79679f09da5415fe1af2a14549b9c9095f49a61/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc

Project Member

Comment 389 by bugdroid1@chromium.org, Aug 1

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

commit b453c812333bd4e8427975d778b92f3a3b6718e3
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Aug 01 15:37:56 2018

[LayoutNG] Update BFC (block) offset resolving documentation.

This was pretty mechanical, but everything I think still makes sense.
Effectively everything that references "resolving a BFC offset" now
turns into "resolving a BFC block offset".

There should be no behaviour change.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I1215520ab21eae6fb45b4ab53be08a0fdde232ac
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1155266
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#579816}
[modify] https://crrev.com/b453c812333bd4e8427975d778b92f3a3b6718e3/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/b453c812333bd4e8427975d778b92f3a3b6718e3/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/b453c812333bd4e8427975d778b92f3a3b6718e3/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/b453c812333bd4e8427975d778b92f3a3b6718e3/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/b453c812333bd4e8427975d778b92f3a3b6718e3/third_party/blink/renderer/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/b453c812333bd4e8427975d778b92f3a3b6718e3/third_party/blink/renderer/core/layout/ng/ng_layout_result.h

Project Member

Comment 390 by bugdroid1@chromium.org, Aug 9

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

commit 150d1e43b3811b1ddc337532d3f27839e30ad492
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Thu Aug 09 02:31:50 2018

[layoutng] Reduce unnecessary recomputation of padding

The float->LayoutUnit conversion is surprisingly expensive

R=eae@chromium.org

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I0aeb88ed69e9324512017cc7b376d2313eaa4b58
Reviewed-on: https://chromium-review.googlesource.com/1168088
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#581768}
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/layout_block_flow.cc
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/list/ng_unpositioned_list_marker.cc
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/ng_box_fragment.cc
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/ng_box_fragment.h
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/ng_fragmentation_utils.cc
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/ng_page_layout_algorithm.cc
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/150d1e43b3811b1ddc337532d3f27839e30ad492/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc

Project Member

Comment 391 by bugdroid1@chromium.org, Aug 10

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

commit 1c4f51eb4a16077716ad725df84c3fe4a2cd6b86
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Fri Aug 10 18:50:34 2018

[layoutng] Remove an unnecessary duplicate call to ComputePadding

Also, makes CalculateBorderScrollbarPadding equivalent to
ComputeBorder + ComputePadding + GetScrollbarSizes.

This also makes the padding set on the fragment more correct.

R=eae@chromium.org

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I8db38ca5955d30fa789a636e5c6deb2ec1fd1829
Reviewed-on: https://chromium-review.googlesource.com/1169321
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582272}
[modify] https://crrev.com/1c4f51eb4a16077716ad725df84c3fe4a2cd6b86/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/1c4f51eb4a16077716ad725df84c3fe4a2cd6b86/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/1c4f51eb4a16077716ad725df84c3fe4a2cd6b86/third_party/blink/renderer/core/layout/ng/ng_length_utils.h

Project Member

Comment 392 by bugdroid1@chromium.org, Aug 10

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

commit 3584222f068fd6c16e2203b8c845945b3aba8f05
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Fri Aug 10 21:29:16 2018

[layoutng] Store borders on fragments as well

This avoids recomputing them later.

Also, changes RunOldLayout to use legacy layout to
compute border/padding to store on the fragment,
which seems more correct.

R=eae@chromium.org

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: Id659d7c92eae81431d8e75a26ac3973421afc3d0
Reviewed-on: https://chromium-review.googlesource.com/1169634
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582339}
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_box_fragment.cc
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_box_fragment.h
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_flex_layout_algorithm.cc
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_page_layout_algorithm.cc
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/3584222f068fd6c16e2203b8c845945b3aba8f05/third_party/blink/renderer/core/layout/ng/ng_physical_box_fragment.h

Project Member

Comment 393 by bugdroid1@chromium.org, Aug 11

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

commit 3b8c952b48cb746a0df77773af77e30a985d93d3
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Sat Aug 11 23:43:06 2018

[layoutng] Cache min/max content size in ComputeInlineSizeForFragment

This also required fixing the relayout when the scrollbar changes, which fixes
css3/flexbox/scrollbars-auto.html (and avoids breaking two tests in
external/wpt/css/vendor-imports/mozilla/mozilla-central-reftests/flexbox)

Bug: 635619

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng;luci.chromium.try:linux_layout_tests_slimming_paint_v2;master.tryserver.blink:linux_trusty_blink_rel
Change-Id: I790f0524b029a3c2340b6b9715c5b3529c75357f
Reviewed-on: https://chromium-review.googlesource.com/1162657
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#582464}
[modify] https://crrev.com/3b8c952b48cb746a0df77773af77e30a985d93d3/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/3b8c952b48cb746a0df77773af77e30a985d93d3/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/3b8c952b48cb746a0df77773af77e30a985d93d3/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/3b8c952b48cb746a0df77773af77e30a985d93d3/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.cc

Project Member

Comment 394 by bugdroid1@chromium.org, Aug 20

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

commit bbe6c164a31b19defc6f01f8e14387cd8f7623d4
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Mon Aug 20 18:01:27 2018

[layoutng] Handle pre-layout of orthogonal writing modes better

This code previously skipped NG layout objects for performance
reasons (https://codereview.chromium.org/2666663002 and
https://chromium-review.googlesource.com/1073408).

However, we do need to prelayout orthogonal roots if their
containing block is legacy so that we can correctly compute
the intrinsic widths of such containing blocks. This should not
cause double layouts because nothing will mark the NG object
as needing layout in this case.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I63f8384170fe815780c79510b96e436014c39797
Reviewed-on: https://chromium-review.googlesource.com/1180714
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584496}
[modify] https://crrev.com/bbe6c164a31b19defc6f01f8e14387cd8f7623d4/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/bbe6c164a31b19defc6f01f8e14387cd8f7623d4/third_party/blink/renderer/core/frame/local_frame_view.cc

Project Member

Comment 395 by bugdroid1@chromium.org, Aug 21

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

commit 42ecb8546a5d9222427b7462d93d139f4ac63915
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Tue Aug 21 15:51:29 2018

[layoutng] Correctly compute min/max content for orthogonal flows

When we are a legacy node and computing our min/max content, we need
to check if we are an orthogonal writing mode before just returning
legacy min/max, so that we return the right dimension (matching
container_writing_mode).

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I9663bf8a384fe3bfddd457371d6ecf879fcbf03b
Reviewed-on: https://chromium-review.googlesource.com/1182142
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#584757}
[modify] https://crrev.com/42ecb8546a5d9222427b7462d93d139f4ac63915/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/42ecb8546a5d9222427b7462d93d139f4ac63915/third_party/blink/renderer/core/layout/ng/ng_block_node.cc

Blockedon: 876459
Project Member

Comment 397 by bugdroid1@chromium.org, Aug 29

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

commit 8bfde67eda6e02ab4e7a5abf603b95e53527f04f
Author: Morten Stenshorne <mstensho@chromium.org>
Date: Wed Aug 29 21:04:45 2018

[LayoutNG] Remove failure expectations for passing multicol tests.

TBR=cbiesinger@chromium.org, kojii@chromium.org

Bug: 591099, 635619, 797591, 864156
Change-Id: Ibb3e27415a4b1e32055c9f2d156d3f36ca676085
Reviewed-on: https://chromium-review.googlesource.com/1194368
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587297}
[modify] https://crrev.com/8bfde67eda6e02ab4e7a5abf603b95e53527f04f/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 398 by bugdroid1@chromium.org, Aug 30

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

commit 480a30e22c991a3b3bb50e7d951d7502bbeccc97
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Aug 30 11:15:46 2018

[LayoutNG] Set inline capacity (to 1) for unpositioned float vectors.

Also remove RefCounted for NGUnpositionedFloat objects.
This shows a 2-5% perf improvement of float performance tests.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I6bf42c7bb076dbdafbc74cf8f7667c5ea5eb6357
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1193881
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@{#587517}
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/BUILD.gn
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.h
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/ng_unpositioned_float.h
[add] https://crrev.com/480a30e22c991a3b3bb50e7d951d7502bbeccc97/third_party/blink/renderer/core/layout/ng/ng_unpositioned_float_vector.h

Project Member

Comment 399 by bugdroid1@chromium.org, Aug 30

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

commit e73d6a2950a29a72edad1e17d5e834f41f27a9f7
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Aug 30 13:06:41 2018

[LayoutNG] Slim down the NGUnpositionedFloat struct.

This removes all the fields which can be passed in via. PositionFloat(s)
There should be no functionality change.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I1b05c0f58bb2aa1ba17374f6600deda56912408c
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/1196428
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#587539}
[modify] https://crrev.com/e73d6a2950a29a72edad1e17d5e834f41f27a9f7/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/e73d6a2950a29a72edad1e17d5e834f41f27a9f7/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker.cc
[modify] https://crrev.com/e73d6a2950a29a72edad1e17d5e834f41f27a9f7/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/e73d6a2950a29a72edad1e17d5e834f41f27a9f7/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/e73d6a2950a29a72edad1e17d5e834f41f27a9f7/third_party/blink/renderer/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/e73d6a2950a29a72edad1e17d5e834f41f27a9f7/third_party/blink/renderer/core/layout/ng/ng_unpositioned_float.cc
[modify] https://crrev.com/e73d6a2950a29a72edad1e17d5e834f41f27a9f7/third_party/blink/renderer/core/layout/ng/ng_unpositioned_float.h

Project Member

Comment 400 by bugdroid1@chromium.org, Sep 11

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

commit bd89a9920f3bd62627a8741b77fad61360264cf1
Author: Koji Ishii <kojii@chromium.org>
Date: Tue Sep 11 00:35:34 2018

[LayoutNG] Fix scrollWidth/scrollLeft on RTL when box is narrow

When the scrollbar is on left and the box is narrower than
the scrollbar, the scrollbar overflows to left.
LayoutBox::AddLayoutOverflow() expects the overflow adjusted
by the amount the scrollbar overflows.

This affects a jQuery plugin that detects RTL scroll type[1].

[1] https://github.com/othree/jquery.rtl-scroll-type

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I70e7b1ecc20857ff10687afd7d5e3b7d70afb2dc
Reviewed-on: https://chromium-review.googlesource.com/1215365
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590138}
[modify] https://crrev.com/bd89a9920f3bd62627a8741b77fad61360264cf1/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/bd89a9920f3bd62627a8741b77fad61360264cf1/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc

Project Member

Comment 401 by bugdroid1@chromium.org, Sep 12

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

commit 800d47b989ca8294fc63f5a921c26418a98c8b72
Author: Koji Ishii <kojii@chromium.org>
Date: Wed Sep 12 08:39:49 2018

[LayoutNG] Fix scrollWidth/scrollLeft when children are not inline

r590138 (CL:1215365) fixed scrollWidth when box is narrower
than the scrollbar width, but the apporach had two problems:

1. It does not fix if children are not inline, because
   LayoutNGMixin::AddOverflowFromChildren() computes overflow
   from fragments only when children are inline, but
   delegates to LayoutObject if otherwise.
2. scrollWidth was fixed, but scrollLeft is still incorrect
   in some cases. This causes LayoutObject to compute
   incorrect scrollWidth.

Instead of adjusting overflow, this patch adjusts inline
offset of fragments by clamping the scrollbar inline size to
the content box.

This method computes scrollWidth/scrollLeft same as legacy
regardless of children.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I401b245400b7a3fb2717bdcb5cdaa8edd34d928e
Reviewed-on: https://chromium-review.googlesource.com/1217920
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590622}
[modify] https://crrev.com/800d47b989ca8294fc63f5a921c26418a98c8b72/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/800d47b989ca8294fc63f5a921c26418a98c8b72/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
[modify] https://crrev.com/800d47b989ca8294fc63f5a921c26418a98c8b72/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/800d47b989ca8294fc63f5a921c26418a98c8b72/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/800d47b989ca8294fc63f5a921c26418a98c8b72/third_party/blink/renderer/core/layout/ng/ng_length_utils.h

Project Member

Comment 402 by bugdroid1@chromium.org, Sep 12

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

commit 7ee26124a10d663346fec5bc82e08590a7ef7465
Author: Koji Ishii <kojii@chromium.org>
Date: Wed Sep 12 15:52:31 2018

[LayoutNG] Fix marquee to compute min-content inline size to zero

The logic is ported from LayoutBlock::ComputeIntrinsicLogicalWidths.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: Ifd40df3a3d543554ee0d7f46588418c6cbba7d9e
Reviewed-on: https://chromium-review.googlesource.com/1221607
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Commit-Queue: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590700}
[modify] https://crrev.com/7ee26124a10d663346fec5bc82e08590a7ef7465/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/7ee26124a10d663346fec5bc82e08590a7ef7465/third_party/blink/renderer/core/layout/ng/ng_block_node.cc

Project Member

Comment 403 by bugdroid1@chromium.org, Oct 1

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

commit 787c7e6cdbbf2cfb47726a13ccc0fe5d0ca317ef
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Oct 01 20:10:52 2018

[LayoutNG] Fix shape bug, when inserting a new shelf between others.

This fixes an issue, where we didn't copy across any shape exclusion
data when inserting a new shelf between two other shelves.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: Ib26359ab8ac677034ec4e51f2adf1987dadbd91c
Reviewed-on: https://chromium-review.googlesource.com/1255145
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595535}
[add] https://crrev.com/787c7e6cdbbf2cfb47726a13ccc0fe5d0ca317ef/third_party/WebKit/LayoutTests/external/wpt/css/css-shapes/shape-outside/values/shape-outside-inset-010.html
[modify] https://crrev.com/787c7e6cdbbf2cfb47726a13ccc0fe5d0ca317ef/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc

Project Member

Comment 404 by bugdroid1@chromium.org, Oct 2

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

commit 109ba2e5d1ffc3cd079c1d08a62bbe38e2535bfa
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Oct 02 09:49:54 2018

[LayoutNG] Fix call to: ContainingBlock()->AvailableLogicalWidth();

During computing the size of an SVG we may end up calling:
ContainingBlock()->AvailableLogicalWidth()

This is invalid inside LayoutNG as we should always use the override
set by the LayoutNG algorithm.

Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: Ia9f32ac921726cf3f3f0d76dcccd2a0497cb25cf
Bug: 	635619
Reviewed-on: https://chromium-review.googlesource.com/1255598
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#595778}
[modify] https://crrev.com/109ba2e5d1ffc3cd079c1d08a62bbe38e2535bfa/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/109ba2e5d1ffc3cd079c1d08a62bbe38e2535bfa/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/transforms/text-with-pattern-inside-transformed-html-expected.png
[add] https://crrev.com/109ba2e5d1ffc3cd079c1d08a62bbe38e2535bfa/third_party/WebKit/LayoutTests/flag-specific/enable-blink-features=LayoutNG/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt
[modify] https://crrev.com/109ba2e5d1ffc3cd079c1d08a62bbe38e2535bfa/third_party/blink/renderer/core/layout/layout_replaced.cc

Project Member

Comment 405 by bugdroid1@chromium.org, Oct 3

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

commit 5a2a07e4a46d9fe8a9c1c14af2bf30d601d99304
Author: Koji Ishii <kojii@chromium.org>
Date: Wed Oct 03 18:13:54 2018

[LayoutNG] Mark LayoutNGMixin functions as final when possible

Some override functions in LayoutNGMixin are not to be
overridden further. This patch marks them as 'final' so that
calling them from inside of LayoutNGMixin or its subclasses
can make non-virtual calls.

No behavior changes.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I97e65d70cbe34b6757ab129c62e37bdaddcda72e
Reviewed-on: https://chromium-review.googlesource.com/1258664
Reviewed-by: Yoshifumi Inoue <yosin@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#596285}
[modify] https://crrev.com/5a2a07e4a46d9fe8a9c1c14af2bf30d601d99304/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.h
[modify] https://crrev.com/5a2a07e4a46d9fe8a9c1c14af2bf30d601d99304/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_item.h
[modify] https://crrev.com/5a2a07e4a46d9fe8a9c1c14af2bf30d601d99304/third_party/blink/renderer/core/layout/ng/list/layout_ng_list_marker.h

Project Member

Comment 406 by bugdroid1@chromium.org, Oct 12

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

commit 944dd0e6749ab63a23d50ddce1fae3ad610c47f3
Author: Florent Castelli <orphis@chromium.org>
Date: Fri Oct 12 09:14:42 2018

Mark virtual/layout_ng/fast/block/float/nopaint-after-layer-destruction.html as failing

TBR=mstensho@chromium.org

Bug: 635619
Change-Id: I6dee9c7fd68b317c816216f3a8c521501acce255
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/1278785
Reviewed-by: Florent Castelli <orphis@chromium.org>
Commit-Queue: Florent Castelli <orphis@chromium.org>
Cr-Commit-Position: refs/heads/master@{#599151}
[modify] https://crrev.com/944dd0e6749ab63a23d50ddce1fae3ad610c47f3/third_party/WebKit/LayoutTests/TestExpectations

Project Member

Comment 407 by bugdroid1@chromium.org, Oct 16

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

commit 248a5a86102d0c024e363f263c2df2894f1f3ff0
Author: Koji Ishii <kojii@chromium.org>
Date: Tue Oct 16 20:20:18 2018

[LayoutNG] Change PositionFloats signature

This patch changes PositionFloats to have
NGPositionedFloatVector* to return the positioned floats,
instead of it to return the vector.

NGPositionedFloatVector has inline buffer that returning
it involves a bit of memory copy overhead.

Pinpoint shows slight improvement. We could see them within
errors, but mostly positive, and running twice shows similar
trends.
https://pinpoint-dot-chromeperf.appspot.com/job/11f3134ce40000

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I29c23e370b398f54a9acc1745f37ea9ffcb1b2fc
Reviewed-on: https://chromium-review.googlesource.com/c/1282689
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#600101}
[modify] https://crrev.com/248a5a86102d0c024e363f263c2df2894f1f3ff0/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/248a5a86102d0c024e363f263c2df2894f1f3ff0/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/248a5a86102d0c024e363f263c2df2894f1f3ff0/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/248a5a86102d0c024e363f263c2df2894f1f3ff0/third_party/blink/renderer/core/layout/ng/ng_floats_utils.h

Project Member

Comment 408 by bugdroid1@chromium.org, Oct 31

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

commit df0181fb5fb4f783e642aaafbd1b9ad86e8ee68c
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Oct 31 02:44:14 2018

[LayoutNG] Change FindLayoutOpportunity to not create a Vector each time.

This lambda-izes AllLayoutOpportunities, so that FindLayoutOpportunity
doesn't need to iterate over a Vector to find something that fits.

Bug: 635619
Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng
Change-Id: I0cf9d5ce16608032850e326173a9fb4d501a9181
Reviewed-on: https://chromium-review.googlesource.com/c/1193942
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@{#604120}
[modify] https://crrev.com/df0181fb5fb4f783e642aaafbd1b9ad86e8ee68c/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
[modify] https://crrev.com/df0181fb5fb4f783e642aaafbd1b9ad86e8ee68c/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h

Project Member

Comment 409 by bugdroid1@chromium.org, Oct 31

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

commit fea62cfdaabcc8130c133ce0b9981921e352dcdf
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Oct 31 11:39:34 2018

[LayoutNG] Remove optimization that practically does nothing.

This was an over-otimization, which realistically probably never gets
hit.

Bug: 635619
Change-Id: Icac53b8605e56242b8455228d0767b2dafb66b5d
Reviewed-on: https://chromium-review.googlesource.com/c/1305133
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604211}
[modify] https://crrev.com/fea62cfdaabcc8130c133ce0b9981921e352dcdf/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc

Project Member

Comment 410 by bugdroid1@chromium.org, Oct 31

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

commit b75b9de0287f0c8dc57ec6b94de43bb5d808f6c7
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Oct 31 12:01:14 2018

[LayoutNG] Change NGShelf edges to simple tuples, instead of exclusions.

This changes the line_left_edges, and line_right_edges to keep a simple
tuple instead of a scoped_refptr to an NGExclusion.

This speeds up some of the float benchmarks by ~2.5%.

Bug: 635619
Change-Id: I2d4801c5e2eecdbdc53e147dc8e9609150bab581
Reviewed-on: https://chromium-review.googlesource.com/c/1308259
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@{#604217}
[modify] https://crrev.com/b75b9de0287f0c8dc57ec6b94de43bb5d808f6c7/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
[modify] https://crrev.com/b75b9de0287f0c8dc57ec6b94de43bb5d808f6c7/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h

Project Member

Comment 411 by bugdroid1@chromium.org, Oct 31

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

commit a136192915b5308e7dbad18203ff7c4a571b6710
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Oct 31 23:30:02 2018

Revert "[LayoutNG] Remove optimization that practically does nothing."

This reverts commit fea62cfdaabcc8130c133ce0b9981921e352dcdf.

Reason for revert: Turns out this optimization was important for all the float tests.

Original change's description:
> [LayoutNG] Remove optimization that practically does nothing.
> 
> This was an over-otimization, which realistically probably never gets
> hit.
> 
> Bug: 635619
> Change-Id: Icac53b8605e56242b8455228d0767b2dafb66b5d
> Reviewed-on: https://chromium-review.googlesource.com/c/1305133
> Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
> Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#604211}

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

Change-Id: Id842627640dec23519c0b3de88b07958667e54ea
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/c/1311794
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604439}
[modify] https://crrev.com/a136192915b5308e7dbad18203ff7c4a571b6710/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc

Project Member

Comment 412 by bugdroid1@chromium.org, Nov 1

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

commit 739aa26bc184a0e53999e6fdecd3ab11911c5f16
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Nov 01 18:33:19 2018

[LayoutNG] Avoid bookkeeping shape_exclusions if shapes aren't present.

We spend a lot of time collecting floats. This is for an edge-case
calculation when shape-outside is specified on another float.

Typically this doesn't happen. This change checks if a float is added
with shape outside, and invalidates the derived_geometry_ member to
indicate it needs to track these objects now.

This removes one of the last large allocations in the exclusion space
code, and improves micro-benchmarks by 5-10%.

Bug: 635619
Change-Id: I32abb143959e28c526c16e779f9e2dc9c0992d56
Reviewed-on: https://chromium-review.googlesource.com/c/1309144
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@{#604647}
[modify] https://crrev.com/739aa26bc184a0e53999e6fdecd3ab11911c5f16/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.cc
[modify] https://crrev.com/739aa26bc184a0e53999e6fdecd3ab11911c5f16/third_party/blink/renderer/core/layout/ng/exclusions/ng_exclusion_space.h

Project Member

Comment 413 by bugdroid1@chromium.org, Nov 2

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

commit e9d9c388401805d7f2ff3d569ec254c13fbb90ab
Author: Koji Ishii <kojii@chromium.org>
Date: Fri Nov 02 18:36:51 2018

[LayoutNG] Reorder members of NGConstraintSpace to reduce size

This patch reorders members of NGConstraintSpace so that
value (non-class/struct) members are placed at the end.

Due to byte-align, it reduces the size from 96 bytes to
88 bytes on x64.

Bug: 635619
Change-Id: I7d9471343f3c16d91f7534fd98e2b95f1d18f8c5
Reviewed-on: https://chromium-review.googlesource.com/c/1314070
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#604994}
[modify] https://crrev.com/e9d9c388401805d7f2ff3d569ec254c13fbb90ab/third_party/blink/renderer/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/e9d9c388401805d7f2ff3d569ec254c13fbb90ab/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h

Project Member

Comment 414 by bugdroid1@chromium.org, Nov 5

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

commit 0f4ea08c738b030656a74a3b837fdd833d20f308
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Nov 05 15:56:14 2018

[LayoutNG] Fix shape-outside-{circle-048,polygon-020}.html tests.

This was two subtle bugs in one.

1) We need to copy back data to the ShapeOutsideInfo side
   data-structure, even if its an "intermediate" layout, (during the
   min/max pass).

   This was causing the incorrect size to be calculated for body, as
   it thought the shape was "empty" (its size was 0,0).

   Eventually this should be fixed by moving the shape to the layout
   result, removing this side data-structure.

2) The static-position for vertical-rl was broken.
   When accounting for flipped-blocks, we need to use the containing
   block writing-mode, instead of the direct parent.

   Static position doesn't really work cross writing modes in the
   existing layout system, so this isn't perfect, is closer to the old
   system.

Bug: 635619
Change-Id: Ia7f8144cc1c9515b161bf3502c58fee66e59f3c3
Reviewed-on: https://chromium-review.googlesource.com/c/1315390
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Aleks Totic <atotic@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#605345}
[modify] https://crrev.com/0f4ea08c738b030656a74a3b837fdd833d20f308/third_party/WebKit/LayoutTests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/0f4ea08c738b030656a74a3b837fdd833d20f308/third_party/blink/renderer/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/0f4ea08c738b030656a74a3b837fdd833d20f308/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/0f4ea08c738b030656a74a3b837fdd833d20f308/third_party/blink/renderer/core/layout/ng/ng_block_node.h

Blockedon: 904291
Blockedon: -904291
Project Member

Comment 417 by bugdroid1@chromium.org, Nov 13

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

commit 58605429dc978099c398d0d183017e9543a26425
Author: Koji Ishii <kojii@chromium.org>
Date: Tue Nov 13 02:19:45 2018

[LayoutNG] Reduces the size of NGPhysical{Box|Text}Fragment

This patch reduces the size of:
* NGPhysicalBoxFragment by a pointer, by removing |style_|
  from NGPhysicalFragment. This field is used only for line
  box and for ellipsis, and thus it is moved to each
  subclasses.
* NGPhysicalTextFragment by 16 bytes, by moving
  |self_ink_overflow_| and |style_| to RareData. Quick
  investigation shows that |self_ink_overflow_| is different
  from |LocalRect()| in 10-20% of the time (on Linux,
  google.com and a few other sites.)

Change-Id: I225edd42d6d9488611ffe2fa7ef9b11b7e9da4a1
Bug: 635619, 636993
Reviewed-on: https://chromium-review.googlesource.com/c/1331102
Reviewed-by: Aleks Totic <atotic@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607444}
[modify] https://crrev.com/58605429dc978099c398d0d183017e9543a26425/third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect.cc
[modify] https://crrev.com/58605429dc978099c398d0d183017e9543a26425/third_party/blink/renderer/core/layout/ng/geometry/ng_physical_offset_rect.h
[modify] https://crrev.com/58605429dc978099c398d0d183017e9543a26425/third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.cc
[modify] https://crrev.com/58605429dc978099c398d0d183017e9543a26425/third_party/blink/renderer/core/layout/ng/inline/ng_physical_line_box_fragment.h
[modify] https://crrev.com/58605429dc978099c398d0d183017e9543a26425/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.cc
[modify] https://crrev.com/58605429dc978099c398d0d183017e9543a26425/third_party/blink/renderer/core/layout/ng/inline/ng_physical_text_fragment.h
[modify] https://crrev.com/58605429dc978099c398d0d183017e9543a26425/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/58605429dc978099c398d0d183017e9543a26425/third_party/blink/renderer/core/layout/ng/ng_physical_fragment.h

Project Member

Comment 419 by bugdroid1@chromium.org, Nov 13

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

commit 89dd45931a0fc2bf4400bdd4739282072fd62f23
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Nov 13 18:40:25 2018

[LayoutNG] Remove logic from NGConstraintSpace constructor.

Instead make the NGConstraintSpaceBuilder to directly write into the
NGConstraintSpace members. Along with a (very) slight perf win (easier
on the stack), it makes it easier for the rare_data_ patch to follow
this one.

There should be no behaviour change.

Bug: 635619
Change-Id: I0f75166df760ed03fb8f0ab3099c5b12760547ed
Reviewed-on: https://chromium-review.googlesource.com/c/1321571
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#607668}
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/inline/ng_baseline.h
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_base_layout_algorithm_test.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_column_layout_algorithm.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder_test.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_fieldset_layout_algorithm.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_flex_layout_algorithm.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_inline_layout_test.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_page_layout_algorithm.cc
[modify] https://crrev.com/89dd45931a0fc2bf4400bdd4739282072fd62f23/third_party/blink/renderer/core/layout/ng/ng_space_utils.cc

Project Member

Comment 420 by bugdroid1@chromium.org, Nov 15

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

commit 41c1ee8a95439ceb6018ca296858ed417bd5c500
Author: Koji Ishii <kojii@chromium.org>
Date: Thu Nov 15 14:32:37 2018

[LayoutNG] Enable fragment caching when BFC block offset changes

This patch enables fragment caching when BFC block offset
changes, as long as 1) either the cached or new doesn't have
floats, and 2) the cached fragment doesn't propagate OOF
objects. The latter may not be needed, but helps to simplify.

Minor but mostly positive improvements are seen in pinpoint:
blink_perf.layout https://pinpoint-dot-chromeperf.appspot.com/job/13a7a7f7e40000
loading.desktop https://pinpoint-dot-chromeperf.appspot.com/job/17a7a7f7e40000

2 block fragmentation tests fail with this change that this
change is not enabled for block fragmentation for now.
* virtual/layout_ng_experimental/fast/multicol/balance-breakafter-before-nested-block.html
* virtual/layout_ng_experimental/fast/multicol/dynamic/spanner-becomes-regular-block.html

Bug: 635619
Change-Id: I46826b45defd556c8dadbf861fb1bbf61c5ae658
Reviewed-on: https://chromium-review.googlesource.com/c/1335072
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#608360}
[modify] https://crrev.com/41c1ee8a95439ceb6018ca296858ed417bd5c500/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
[modify] https://crrev.com/41c1ee8a95439ceb6018ca296858ed417bd5c500/third_party/blink/renderer/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/41c1ee8a95439ceb6018ca296858ed417bd5c500/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/41c1ee8a95439ceb6018ca296858ed417bd5c500/third_party/blink/renderer/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/41c1ee8a95439ceb6018ca296858ed417bd5c500/third_party/blink/renderer/core/layout/ng/ng_layout_result.h

Project Member

Comment 421 by bugdroid1@chromium.org, Nov 16

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

commit 1c8b66379cbaf6a358164e106351f70b3800514f
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Nov 16 23:54:53 2018

[LayoutNG] Introduce NGConstraintSpace::RareData.

This moves fields relating to:
 - Floats clearance
 - Fragmentation
 - Margin struts
 - Weird percentages

... to a rare data member. This decreases partition alloc usage on
system_health.memory_desktop by approximately 6-7%, at the cost of
0-6% on most benchmarks.

Change-Id: Ifaeaf5d874efcd13ce9eff785d8093d24637de86
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/c/1323803
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609030}
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/BUILD.gn
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/geometry/ng_logical_size.h
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/geometry/ng_margin_strut.cc
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_absolute_utils.cc
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h
[add] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder_test.cc
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_fieldset_layout_algorithm.cc
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/1c8b66379cbaf6a358164e106351f70b3800514f/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc

Project Member

Comment 422 by bugdroid1@chromium.org, Nov 20

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

commit 2f4d85c85aff520cddeb3ba69730e00c99c7ce83
Author: Koji Ishii <kojii@chromium.org>
Date: Tue Nov 20 14:45:08 2018

[LayoutNG] Allow BFC block offset to differ in MaySkipLayout

r608360 enabled fragment caching when BFC block offset
changes, but r609030 disabled it when RareData exists,
probably due to merge failure.

This patch re-enables it. It recovers some of the
performance loss seen at go/layoutng-loading-perf:
https://pinpoint-dot-chromeperf.appspot.com/job/1605b070140000

Change-Id: I071fd5b4dd177245aa402718ce6f737549aa1b12
Bug: 635619
Reviewed-on: https://chromium-review.googlesource.com/c/1341741
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#609694}
[modify] https://crrev.com/2f4d85c85aff520cddeb3ba69730e00c99c7ce83/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h

Project Member

Comment 423 by bugdroid1@chromium.org, Nov 26

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

commit fe8e4c91fad3e566ca63e6abc743bf3dad65d670
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Nov 26 18:56:50 2018

[LayoutNG] Remove ICB size from NGConstraintSpace.

This removes another 2xLayoutUnits on the NGConstraintSpace.
This should have no behaviour change.

Bug: 635619
Change-Id: I765139563ffc9b167fefffe16ed3674c1db5dbf9
Reviewed-on: https://chromium-review.googlesource.com/c/1340585
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#610900}
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/inline/ng_line_breaker_test.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_base_layout_algorithm_test.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_constraint_space_builder_test.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_fieldset_layout_algorithm.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_flex_layout_algorithm.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_inline_layout_test.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_out_of_flow_layout_part.h
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/fe8e4c91fad3e566ca63e6abc743bf3dad65d670/third_party/blink/renderer/core/layout/ng/ng_space_utils.h

Project Member

Comment 425 by bugdroid1@chromium.org, Dec 4

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

commit bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18
Author: Aleks Totic <atotic@chromium.org>
Date: Tue Dec 04 20:23:10 2018

[LayoutNG] Rebaseline for new image rendering differences

Also, rebaseline tests where NG results look good.

Bug: 635619
Change-Id: I9f6bd08888bcc505bc5742f5e4bf42c09873372b
Reviewed-on: https://chromium-review.googlesource.com/c/1361701
Reviewed-by: Emil A Eklund <eae@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#613675}
[add] https://crrev.com/bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/inline/continuation-outlines-expected.png
[add] https://crrev.com/bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/inline/continuation-outlines-with-layers-expected.png
[add] https://crrev.com/bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/dynamic-caption-add-before-child-expected.png
[modify] https://crrev.com/bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/compositing/repaint-via-layout-offset-expected.txt
[add] https://crrev.com/bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/outline/focus-ring-on-child-move-expected.txt
[add] https://crrev.com/bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/outline/outline-change-invalidation-expected.txt
[add] https://crrev.com/bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/position/abspos-shift-image-incorrect-repaint-expected.txt
[modify] https://crrev.com/bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/selection/japanese-rl-selection-clear-expected.txt
[modify] https://crrev.com/bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png
[delete] https://crrev.com/620efd1d06d880f5371c2e7eac8a034e43ce70d3/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.txt
[add] https://crrev.com/bbe7750c4012dc0b0a70f9048ee8eaa2c41f2c18/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/virtual/user-activation-v2/fast/events/mouse-cursor-expected.txt

Project Member

Comment 427 by bugdroid1@chromium.org, Dec 18

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

commit 1f409ab875096837f68663fd2050bf9968860f32
Author: Koji Ishii <kojii@chromium.org>
Date: Tue Dec 18 05:12:55 2018

[LayoutNG] Make NGBreakToken smaller

This patch makes NGBreakToken smaller by:
1. Move bitfields in subclasses to NGBreakToken.
2. Disassemble NGLayoutInputNode and reconstruct when needed,
   because NGLayoutInputNode needs a pointer and one bit.

Also adds size warning to NGBreakToken and its subclasses.

Bug: 635619
Change-Id: Iaee700fac962b49be1011ef84cfc712f050254bd
Reviewed-on: https://chromium-review.googlesource.com/c/1379625
Commit-Queue: Koji Ishii <kojii@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617383}
[modify] https://crrev.com/1f409ab875096837f68663fd2050bf9968860f32/third_party/blink/renderer/core/layout/ng/inline/ng_inline_break_token.cc
[modify] https://crrev.com/1f409ab875096837f68663fd2050bf9968860f32/third_party/blink/renderer/core/layout/ng/inline/ng_inline_break_token.h
[modify] https://crrev.com/1f409ab875096837f68663fd2050bf9968860f32/third_party/blink/renderer/core/layout/ng/ng_block_break_token.cc
[modify] https://crrev.com/1f409ab875096837f68663fd2050bf9968860f32/third_party/blink/renderer/core/layout/ng/ng_block_break_token.h
[modify] https://crrev.com/1f409ab875096837f68663fd2050bf9968860f32/third_party/blink/renderer/core/layout/ng/ng_break_token.cc
[modify] https://crrev.com/1f409ab875096837f68663fd2050bf9968860f32/third_party/blink/renderer/core/layout/ng/ng_break_token.h
[modify] https://crrev.com/1f409ab875096837f68663fd2050bf9968860f32/third_party/blink/renderer/core/layout/ng/ng_layout_input_node.h

Project Member

Comment 428 by bugdroid1@chromium.org, Dec 18

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

commit 0ca007a8321b10d8202adecc774115cb7f9ad6f4
Author: Aleks Totic <atotic@chromium.org>
Date: Tue Dec 18 08:29:59 2018

[LayoutNG] Rebaseline tests that got broken

Bug: 635619
Change-Id: I674359fe8aaf9ded2521cf53554f8c4931c3af61
Reviewed-on: https://chromium-review.googlesource.com/c/1381634
Commit-Queue: Aleks Totic <atotic@chromium.org>
Commit-Queue: Morten Stenshorne <mstensho@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617413}
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/gradients/simple-gradients-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/inline/inline-box-background-repeat-y-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-cell-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-cell-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-column-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-column-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-column-group-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-column-group-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-row-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-row-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-row-group-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_border-table-row-group-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_layers-hide-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_layers-hide-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-cell-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-cell-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-column-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-column-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-column-group-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-column-group-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-row-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-row-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-row-group-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_position-table-row-group-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-cell-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-cell-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-column-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-column-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-column-group-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-column-group-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-row-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-row-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-row-group-collapsed-border-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/table/backgr_simple-table-row-group-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png
[modify] https://crrev.com/0ca007a8321b10d8202adecc774115cb7f9ad6f4/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/virtual/gpu/fast/canvas/image-object-in-canvas-expected.png

Project Member

Comment 429 by bugdroid1@chromium.org, Jan 3

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

commit 84026b734855aa12557ce796bd38a2cd29aae3dd
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Thu Jan 03 15:14:28 2019

[LayoutNG] Rebaseline width-avoid-floats.html

This adds a new test expectation file for the width-avoid-floats.html
test.

We believe that if/when fill-available does get specified, it should
avoid floats similar to 'auto'.

Bug: 635619
Change-Id: I1c112952ea70176c55106d9bd396034cbf5ca531
Reviewed-on: https://chromium-review.googlesource.com/c/1393667
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Cr-Commit-Position: refs/heads/master@{#619638}
[modify] https://crrev.com/84026b734855aa12557ce796bd38a2cd29aae3dd/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
[add] https://crrev.com/84026b734855aa12557ce796bd38a2cd29aae3dd/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/fast/css-intrinsic-dimensions/width-avoid-floats-expected.html

Project Member

Comment 430 by bugdroid1@chromium.org, Jan 4

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

commit 88f301874fe22403ea3526f695cbe2cbab47f93a
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Jan 04 20:40:49 2019

Remove current layout engine's unbreakable images quirk.

This removes the unbreakable images quirk (where there is no break
opportunity between an image and a word), during the layout phase of
the current layout system.

This does not remove the quirk from the min/max contribution phase, as
this seems necessary for the web-compat.

This now matches FF, Edge, and LayoutNG behaviour.

Bug: 635619
Change-Id: I6de59a67a75a0040d4388e2808637c074a71aa25
Reviewed-on: https://chromium-review.googlesource.com/c/1394726
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#620052}
[modify] https://crrev.com/88f301874fe22403ea3526f695cbe2cbab47f93a/third_party/blink/renderer/core/layout/line/breaking_context_inline_headers.h
[modify] https://crrev.com/88f301874fe22403ea3526f695cbe2cbab47f93a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
[modify] https://crrev.com/88f301874fe22403ea3526f695cbe2cbab47f93a/third_party/blink/web_tests/fast/table/unbreakable-images-quirk.html
[modify] https://crrev.com/88f301874fe22403ea3526f695cbe2cbab47f93a/third_party/blink/web_tests/platform/linux/fast/table/unbreakable-images-quirk-expected.png
[modify] https://crrev.com/88f301874fe22403ea3526f695cbe2cbab47f93a/third_party/blink/web_tests/platform/linux/tables/mozilla/bugs/bug101674-expected.png
[modify] https://crrev.com/88f301874fe22403ea3526f695cbe2cbab47f93a/third_party/blink/web_tests/platform/mac/fast/table/unbreakable-images-quirk-expected.png
[modify] https://crrev.com/88f301874fe22403ea3526f695cbe2cbab47f93a/third_party/blink/web_tests/platform/mac/tables/mozilla/bugs/bug2973-expected.png
[modify] https://crrev.com/88f301874fe22403ea3526f695cbe2cbab47f93a/third_party/blink/web_tests/platform/win/fast/table/unbreakable-images-quirk-expected.png
[modify] https://crrev.com/88f301874fe22403ea3526f695cbe2cbab47f93a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug101674-expected.png
[modify] https://crrev.com/88f301874fe22403ea3526f695cbe2cbab47f93a/third_party/blink/web_tests/platform/win/tables/mozilla/bugs/bug2973-expected.png

Project Member

Comment 431 by bugdroid1@chromium.org, Jan 11

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

commit 7d0e707666e902da33491f05c32258bd71c3d02a
Author: Aleks Totic <atotic@chromium.org>
Date: Fri Jan 11 18:58:52 2019

[LayoutNG] rebaseline failing test

Bug: 635619
Change-Id: Ib1b0bc2b86f80a1758cff6bcb157c26ec76fdf4c
Reviewed-on: https://chromium-review.googlesource.com/c/1407270
Reviewed-by: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Commit-Queue: Aleks Totic <atotic@chromium.org>
Cr-Commit-Position: refs/heads/master@{#622077}
[modify] https://crrev.com/7d0e707666e902da33491f05c32258bd71c3d02a/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/virtual/gpu-rasterization/images/color-profile-image-filter-all-expected.png

Project Member

Comment 432 by bugdroid1@chromium.org, Jan 16 (3 days ago)

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

commit 29440b1ab62aa76d0c15e7e92507da072bf604f2
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Wed Jan 16 21:53:44 2019

[LayoutNG] Tighten when we relayout due to %-resolution-size change.

This patch propagates a bit of information up the layout result tree,
if a particular child is dependent on the %-resolution size.

This has a small improvement (~1%) in desktop loading benchmarks for
style. (However this could also be noise :/).

This marks all old layout roots as dependant, and doesn't try to make
use of LayoutBlock::PercentHeightDescendants

Bug: 635619
Change-Id: I9d313f5996de7184b9850c3e324bf9a76e08bb7d
Reviewed-on: https://chromium-review.googlesource.com/c/1407086
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#623385}
[modify] https://crrev.com/29440b1ab62aa76d0c15e7e92507da072bf604f2/third_party/blink/renderer/core/layout/ng/inline/ng_line_box_fragment_builder.h
[modify] https://crrev.com/29440b1ab62aa76d0c15e7e92507da072bf604f2/third_party/blink/renderer/core/layout/ng/layout_ng_mixin.cc
[modify] https://crrev.com/29440b1ab62aa76d0c15e7e92507da072bf604f2/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/29440b1ab62aa76d0c15e7e92507da072bf604f2/third_party/blink/renderer/core/layout/ng/ng_box_fragment_builder.h
[modify] https://crrev.com/29440b1ab62aa76d0c15e7e92507da072bf604f2/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.cc
[modify] https://crrev.com/29440b1ab62aa76d0c15e7e92507da072bf604f2/third_party/blink/renderer/core/layout/ng/ng_container_fragment_builder.h
[modify] https://crrev.com/29440b1ab62aa76d0c15e7e92507da072bf604f2/third_party/blink/renderer/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/29440b1ab62aa76d0c15e7e92507da072bf604f2/third_party/blink/renderer/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/29440b1ab62aa76d0c15e7e92507da072bf604f2/third_party/blink/renderer/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/29440b1ab62aa76d0c15e7e92507da072bf604f2/third_party/blink/renderer/core/layout/ng/ng_length_utils.h

Project Member

Comment 433 by bugdroid1@chromium.org, Yesterday (30 hours ago)

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

commit 0c1ff5206e3dbae5910e12118466ef47c95af0df
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Fri Jan 18 16:15:56 2019

[LayoutNG] Use ForceChildLayout() instead of ForceLayout()

ForceLayout was causing additional paint invalidations due to:
SetShouldDoFullPaintInvalidation();
...inside it.

Instead this now uses LayoutIfNeeded if the item needs layout (probably
from a style change/node removal/etc), and ForceChildLayout() which
doesn't perform this invalidation.

Fixes a bunch of paint invalidation tests.

Bug: 635619
Change-Id: I70301097ffd2fa2512f13ad8e090fa5d61a3a300
Reviewed-on: https://chromium-review.googlesource.com/c/1419342
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Christian Biesinger <cbiesinger@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Reviewed-by: Morten Stenshorne <mstensho@chromium.org>
Cr-Commit-Position: refs/heads/master@{#624149}
[modify] https://crrev.com/0c1ff5206e3dbae5910e12118466ef47c95af0df/third_party/blink/renderer/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/0c1ff5206e3dbae5910e12118466ef47c95af0df/third_party/blink/web_tests/FlagExpectations/enable-blink-features=LayoutNG
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/clip/control-clip-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/css-grid-layout/grid-item-change-column-repaint-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/css-grid-layout/grid-item-z-index-change-repaint-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/flexbox/align-content-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/flexbox/align-content-distribution-change-grid-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/flexbox/align-items-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/flexbox/align-self-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/flexbox/align-self-change-grid-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/flexbox/justify-content-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/flexbox/justify-content-distribution-change-grid-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/flexbox/justify-items-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/flexbox/justify-self-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/flexbox/repaint-during-resize-no-flex-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/multicol/multicol-repaint-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/overflow/align-items-overflow-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/overflow/align-self-overflow-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/overflow/justify-items-overflow-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/overflow/justify-self-overflow-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/position/align-content-position-change-grid-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/position/justify-content-position-change-expected.txt
[delete] https://crrev.com/427999cfc3d0da1500edf93898f497ad0e8a91bb/third_party/blink/web_tests/flag-specific/enable-blink-features=LayoutNG/paint/invalidation/position/justify-content-position-change-grid-expected.txt

Showing comments 334 - 433 of 433 Older

Sign in to add a comment