Project: chromium Issues People Development process History Sign in
New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 6 users
Status: Available
Owner: ----
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Feature

Blocked on:
issue 740993

Blocking:
issue 591099
issue 636993
issue 687856



Sign in to add a comment
[LayoutNG] Initial block-of-blocks layout implementation.
Project Member Reported by ikilpatrick@chromium.org, Aug 8 2016 Back to list
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.
 
Blocking: 591099
Project Member Comment 2 by bugdroid1@chromium.org, Aug 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d92c803780e603b1e99e79cdc3af847677c8c5c7

commit d92c803780e603b1e99e79cdc3af847677c8c5c7
Author: cbiesinger <cbiesinger@chromium.org>
Date: Tue Aug 09 02:46:39 2016

[layoutng] Initial version of block layout

Also contains a way to create a constraint space from a LayoutBox

R=ikilpatrick@chromium.org
BUG=635619

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

[modify] https://crrev.com/d92c803780e603b1e99e79cdc3af847677c8c5c7/third_party/WebKit/Source/core/core.gypi
[add] https://crrev.com/d92c803780e603b1e99e79cdc3af847677c8c5c7/third_party/WebKit/Source/core/layout/ng/NGBlockLayoutAlgorithm.cpp
[add] https://crrev.com/d92c803780e603b1e99e79cdc3af847677c8c5c7/third_party/WebKit/Source/core/layout/ng/NGBlockLayoutAlgorithm.h

Project Member Comment 3 by bugdroid1@chromium.org, Aug 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/756f6b3cbb4af8b77421d8fea3fa22d07d4c6996

commit 756f6b3cbb4af8b77421d8fea3fa22d07d4c6996
Author: glebl <glebl@chromium.org>
Date: Tue Aug 09 05:35:03 2016

Use LayoutNGBlockFlow for the block layout if layoutNG is enabled.

BUG=635619

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

[modify] https://crrev.com/756f6b3cbb4af8b77421d8fea3fa22d07d4c6996/third_party/WebKit/Source/core/layout/LayoutObject.cpp

Project Member Comment 4 by bugdroid1@chromium.org, Aug 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ce5161d7aed0cf105dbb4c9bf6a9dbcda5cbd672

commit ce5161d7aed0cf105dbb4c9bf6a9dbcda5cbd672
Author: cbiesinger <cbiesinger@chromium.org>
Date: Tue Aug 09 17:46:02 2016

[LayoutNG] Add units structures

R=eae@chromium.org,ikilpatrick@chromium.org,glebl@chromium.org
BUG=635619

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

[add] https://crrev.com/ce5161d7aed0cf105dbb4c9bf6a9dbcda5cbd672/third_party/WebKit/Source/core/layout/ng/NGUnits.h

Project Member Comment 5 by bugdroid1@chromium.org, Aug 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b0bc5dc5abc8ac3ac07fad7ab1eb583701b92600

commit b0bc5dc5abc8ac3ac07fad7ab1eb583701b92600
Author: eae <eae@chromium.org>
Date: Tue Aug 09 18:11:58 2016

[LayoutNG] Add NGText class definition

R=cbiesinger@chromium.org
BUG=635619

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

[modify] https://crrev.com/b0bc5dc5abc8ac3ac07fad7ab1eb583701b92600/third_party/WebKit/Source/core/core.gypi
[add] https://crrev.com/b0bc5dc5abc8ac3ac07fad7ab1eb583701b92600/third_party/WebKit/Source/core/layout/ng/NGText.cpp
[add] https://crrev.com/b0bc5dc5abc8ac3ac07fad7ab1eb583701b92600/third_party/WebKit/Source/core/layout/ng/NGText.h

Project Member Comment 6 by bugdroid1@chromium.org, Aug 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d20368eb97bb4afc23803753ae8857c67a3b7f0b

commit d20368eb97bb4afc23803753ae8857c67a3b7f0b
Author: glebl <glebl@chromium.org>
Date: Tue Aug 09 19:48:55 2016

Add inlineOverflow and blockOverflow methods to NGFragment and make it garbage-collected.

BUG=635619
NOTRY=true

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

[modify] https://crrev.com/d20368eb97bb4afc23803753ae8857c67a3b7f0b/third_party/WebKit/Source/core/layout/ng/NGFragment.cpp
[modify] https://crrev.com/d20368eb97bb4afc23803753ae8857c67a3b7f0b/third_party/WebKit/Source/core/layout/ng/NGFragment.h

Project Member Comment 7 by bugdroid1@chromium.org, Aug 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07af76a5bbadbc179476222647a1b32f6156d264

commit 07af76a5bbadbc179476222647a1b32f6156d264
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue Aug 09 20:16:27 2016

[LayoutNG] Add .clang-format for core/layout/ng directory.

TBR=eae@chromium.org
BUG=635619

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

[add] https://crrev.com/07af76a5bbadbc179476222647a1b32f6156d264/third_party/WebKit/Source/core/layout/ng/.clang-format

Project Member Comment 8 by bugdroid1@chromium.org, Aug 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2546570633ceb9dde91fd59439ef96f3d1d8d064

commit 2546570633ceb9dde91fd59439ef96f3d1d8d064
Author: glebl <glebl@chromium.org>
Date: Tue Aug 09 20:37:18 2016

[LayoutNG] Move createConstraintSpaceFromLayoutObject to NGConstraintSpace

BUG=635619
R=cbiesinger@chromium.org, eae@chromium.org

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

[modify] https://crrev.com/2546570633ceb9dde91fd59439ef96f3d1d8d064/third_party/WebKit/Source/core/layout/ng/NGBlockLayoutAlgorithm.cpp
[modify] https://crrev.com/2546570633ceb9dde91fd59439ef96f3d1d8d064/third_party/WebKit/Source/core/layout/ng/NGBlockLayoutAlgorithm.h
[modify] https://crrev.com/2546570633ceb9dde91fd59439ef96f3d1d8d064/third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.cpp
[modify] https://crrev.com/2546570633ceb9dde91fd59439ef96f3d1d8d064/third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.h

Project Member Comment 9 by bugdroid1@chromium.org, Aug 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7872d0ed57157601145d7efe6f3c773750f38ee2

commit 7872d0ed57157601145d7efe6f3c773750f38ee2
Author: cbiesinger <cbiesinger@chromium.org>
Date: Tue Aug 09 20:54:44 2016

[LayoutNG] Very simple layout() implementation

Just resolved width and height, and returns a fragment with that.

R=eae@chromium.org,ikilpatrick@chromium.org,glebl@chromium.org
BUG=635619
NOTRY=true

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

[modify] https://crrev.com/7872d0ed57157601145d7efe6f3c773750f38ee2/third_party/WebKit/Source/core/layout/ng/NGBlockLayoutAlgorithm.cpp
[modify] https://crrev.com/7872d0ed57157601145d7efe6f3c773750f38ee2/third_party/WebKit/Source/core/layout/ng/NGBlockLayoutAlgorithm.h

Project Member Comment 10 by bugdroid1@chromium.org, Aug 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/63fb1399a8b1b1d9f73e663ea05d82ba08c08876

commit 63fb1399a8b1b1d9f73e663ea05d82ba08c08876
Author: glebl <glebl@chromium.org>
Date: Tue Aug 09 21:20:22 2016

[LayoutNG] Add NGMarginStrut struct definition

NOTRY=true
BUG=635619

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

[modify] https://crrev.com/63fb1399a8b1b1d9f73e663ea05d82ba08c08876/third_party/WebKit/Source/core/core.gypi
[add] https://crrev.com/63fb1399a8b1b1d9f73e663ea05d82ba08c08876/third_party/WebKit/Source/core/layout/ng/NGMarginStrut.h

Project Member Comment 11 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/79c47e69b04edb124fe285223615508f6761ae1b

commit 79c47e69b04edb124fe285223615508f6761ae1b
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Aug 10 01:50:39 2016

[LayoutNG] Change core/layout/ng to Chromium style and rename files.

underscore case will mean this skips the CheckWebkitStyle test in the presubmit.

BUG=635619

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

[modify] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/LayoutObject.cpp
[delete] https://crrev.com/2e78a5383cf4651004dace4e7f708eba0c30753f/third_party/WebKit/Source/core/layout/ng/LayoutNGBlockFlow.cpp
[delete] https://crrev.com/2e78a5383cf4651004dace4e7f708eba0c30753f/third_party/WebKit/Source/core/layout/ng/NGBlockLayoutAlgorithm.cpp
[delete] https://crrev.com/2e78a5383cf4651004dace4e7f708eba0c30753f/third_party/WebKit/Source/core/layout/ng/NGBlockLayoutAlgorithm.h
[delete] https://crrev.com/2e78a5383cf4651004dace4e7f708eba0c30753f/third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.cpp
[delete] https://crrev.com/2e78a5383cf4651004dace4e7f708eba0c30753f/third_party/WebKit/Source/core/layout/ng/NGConstraintSpace.h
[delete] https://crrev.com/2e78a5383cf4651004dace4e7f708eba0c30753f/third_party/WebKit/Source/core/layout/ng/NGFragment.cpp
[delete] https://crrev.com/2e78a5383cf4651004dace4e7f708eba0c30753f/third_party/WebKit/Source/core/layout/ng/NGFragment.h
[delete] https://crrev.com/2e78a5383cf4651004dace4e7f708eba0c30753f/third_party/WebKit/Source/core/layout/ng/NGText.h
[delete] https://crrev.com/2e78a5383cf4651004dace4e7f708eba0c30753f/third_party/WebKit/Source/core/layout/ng/NGUnits.h
[add] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[rename] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.h
[add] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[add] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[add] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[add] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[add] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[add] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[rename] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/ng_margin_strut.h
[rename] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/ng_text.cc
[add] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/ng_text.h
[add] https://crrev.com/79c47e69b04edb124fe285223615508f6761ae1b/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 12 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c653e981b3fe30f70afbc318785f3072b66373d5

commit c653e981b3fe30f70afbc318785f3072b66373d5
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Aug 10 18:36:04 2016

[LayoutNG] Initial version of NGBox wrapper object.

This will allow us to cheaply wrap the old layout tree; and provide as
an input to the layout algorithm.

NOTRY=true
BUG=635619

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

[modify] https://crrev.com/c653e981b3fe30f70afbc318785f3072b66373d5/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/c653e981b3fe30f70afbc318785f3072b66373d5/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/c653e981b3fe30f70afbc318785f3072b66373d5/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[add] https://crrev.com/c653e981b3fe30f70afbc318785f3072b66373d5/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[add] https://crrev.com/c653e981b3fe30f70afbc318785f3072b66373d5/third_party/WebKit/Source/core/layout/ng/ng_box.h

Project Member Comment 13 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b32fa3906f2e3e5254d07497fe95806b6e0c01ba

commit b32fa3906f2e3e5254d07497fe95806b6e0c01ba
Author: eae <eae@chromium.org>
Date: Wed Aug 10 18:43:57 2016

[LayoutNG] Add base class for NGFragment and NGText

Adds a new NGFragmentBase class that both NGFragment and NGText inherit
from and change the NGFragment children collection to use this new base
class, thus allowing either NGFragment or NGText nodes.

BUG=635619
R=cbiesinger@chromium.org

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

[modify] https://crrev.com/b32fa3906f2e3e5254d07497fe95806b6e0c01ba/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/b32fa3906f2e3e5254d07497fe95806b6e0c01ba/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[modify] https://crrev.com/b32fa3906f2e3e5254d07497fe95806b6e0c01ba/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[add] https://crrev.com/b32fa3906f2e3e5254d07497fe95806b6e0c01ba/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.cc
[add] https://crrev.com/b32fa3906f2e3e5254d07497fe95806b6e0c01ba/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[modify] https://crrev.com/b32fa3906f2e3e5254d07497fe95806b6e0c01ba/third_party/WebKit/Source/core/layout/ng/ng_text.cc
[modify] https://crrev.com/b32fa3906f2e3e5254d07497fe95806b6e0c01ba/third_party/WebKit/Source/core/layout/ng/ng_text.h

Project Member Comment 14 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/85890ad97318cd7fc2554c2c0209ba6b908c91ac

commit 85890ad97318cd7fc2554c2c0209ba6b908c91ac
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Aug 10 21:04:20 2016

[LayoutNG] Add PRESUBMIT.py for layout/ng directory.

Initially just has the format check.

BUG=635619

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

[add] https://crrev.com/85890ad97318cd7fc2554c2c0209ba6b908c91ac/third_party/WebKit/Source/core/layout/ng/PRESUBMIT.py

Project Member Comment 15 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/62cd277117e6f8ec53e31b1be58290a6f7ab42ef

commit 62cd277117e6f8ec53e31b1be58290a6f7ab42ef
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Aug 10 21:12:07 2016

[layoutng] Add helper functions to compute lengths

R=ikilpatrick@chromium.org,eae@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/62cd277117e6f8ec53e31b1be58290a6f7ab42ef/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/62cd277117e6f8ec53e31b1be58290a6f7ab42ef/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[add] https://crrev.com/62cd277117e6f8ec53e31b1be58290a6f7ab42ef/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[add] https://crrev.com/62cd277117e6f8ec53e31b1be58290a6f7ab42ef/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h

Project Member Comment 16 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/10f25d0ee6a3072e4089e0c5bbe5ba0c2fcd2b55

commit 10f25d0ee6a3072e4089e0c5bbe5ba0c2fcd2b55
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Aug 10 21:58:05 2016

[layoutng] Add a basic unit test for NGBlockLayoutAlgorithm

R=eae@chromium.org,ikilpatrick@chromium.org,glebl@chromium.org
BUG=635619
NOTRY=true

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

[modify] https://crrev.com/10f25d0ee6a3072e4089e0c5bbe5ba0c2fcd2b55/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/10f25d0ee6a3072e4089e0c5bbe5ba0c2fcd2b55/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[add] https://crrev.com/10f25d0ee6a3072e4089e0c5bbe5ba0c2fcd2b55/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/10f25d0ee6a3072e4089e0c5bbe5ba0c2fcd2b55/third_party/WebKit/Source/core/style/StyleBoxData.h

Project Member Comment 17 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b5e5eabd3f8a654e73a3fec608ed264ed968f525

commit b5e5eabd3f8a654e73a3fec608ed264ed968f525
Author: glebl <glebl@chromium.org>
Date: Wed Aug 10 22:00:50 2016

Fix layout/ng/PRESUBMIT.py by using array.extend instead of concatenation.

NOTRY=true
BUG=635619

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

[modify] https://crrev.com/b5e5eabd3f8a654e73a3fec608ed264ed968f525/third_party/WebKit/Source/core/layout/ng/PRESUBMIT.py

Project Member Comment 18 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/491d8b316be0a2c2719d590310cd06ae754cc0f8

commit 491d8b316be0a2c2719d590310cd06ae754cc0f8
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Aug 10 23:10:50 2016

[layoutng] Make the layout algorithm actually compute and store positions and sizes

R=ikilpatrick@chromium.org,eae@chromium.org,glebl@chromium.org
BUG=635619
NOTRY=true

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

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

Project Member Comment 19 by bugdroid1@chromium.org, Aug 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/65969ab53d68adaba42b188b24b9bb766130f41c

commit 65969ab53d68adaba42b188b24b9bb766130f41c
Author: eae <eae@chromium.org>
Date: Wed Aug 10 23:55:28 2016

[LayoutNG] Add writing-mode and direction to NGFragmentBase

Add enum and fields for writing-mode and text-direction to the fragment
base class. Also change how the type is specified and adds a DCHECK for
setOffset ensuring it can only be called once.

BUG=635619
R=ikilpatrick@chromium.org, glebl@chromium.org
NOTRY=true

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

[modify] https://crrev.com/65969ab53d68adaba42b188b24b9bb766130f41c/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/65969ab53d68adaba42b188b24b9bb766130f41c/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/65969ab53d68adaba42b188b24b9bb766130f41c/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.cc
[modify] https://crrev.com/65969ab53d68adaba42b188b24b9bb766130f41c/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[modify] https://crrev.com/65969ab53d68adaba42b188b24b9bb766130f41c/third_party/WebKit/Source/core/layout/ng/ng_text.h

Project Member Comment 20 by bugdroid1@chromium.org, Aug 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4447e60b8218f0fb2e16d30844ac129419bc95b5

commit 4447e60b8218f0fb2e16d30844ac129419bc95b5
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Aug 11 02:59:55 2016

[layoutng] Add a base class for layout algorithms

R=ikilpatrick@chromium.org,eae@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/4447e60b8218f0fb2e16d30844ac129419bc95b5/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[add] https://crrev.com/4447e60b8218f0fb2e16d30844ac129419bc95b5/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h

Project Member Comment 21 by bugdroid1@chromium.org, Aug 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ba5761a1d6c8f1dc7f972b75487205bfb530256

commit 8ba5761a1d6c8f1dc7f972b75487205bfb530256
Author: glebl <glebl@chromium.org>
Date: Thu Aug 11 04:17:45 2016

[LayoutNG] Initial implementation of NGBoxIterator

NOTRY=true
BUG=635619

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

[modify] https://crrev.com/8ba5761a1d6c8f1dc7f972b75487205bfb530256/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/8ba5761a1d6c8f1dc7f972b75487205bfb530256/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/8ba5761a1d6c8f1dc7f972b75487205bfb530256/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/8ba5761a1d6c8f1dc7f972b75487205bfb530256/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/8ba5761a1d6c8f1dc7f972b75487205bfb530256/third_party/WebKit/Source/core/layout/ng/ng_box.h
[add] https://crrev.com/8ba5761a1d6c8f1dc7f972b75487205bfb530256/third_party/WebKit/Source/core/layout/ng/ng_box_iterator.cc
[add] https://crrev.com/8ba5761a1d6c8f1dc7f972b75487205bfb530256/third_party/WebKit/Source/core/layout/ng/ng_box_iterator.h

Project Member Comment 22 by bugdroid1@chromium.org, Aug 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dd5c49b34b0648feae1af18ead4ebf4381f750fd

commit dd5c49b34b0648feae1af18ead4ebf4381f750fd
Author: samli <samli@chromium.org>
Date: Thu Aug 11 04:34:47 2016

Revert of [LayoutNG] Initial implementation of NGBoxIterator (patchset #4 id:60001 of https://codereview.chromium.org/2230683003/ )

Reason for revert:
Fails to compile.

Why was NOTRY=true used? CQ indicated an error.

Original issue's description:
> [LayoutNG] Initial implementation of NGBoxIterator
>
> NOTRY=true
> BUG=635619
>
> Committed: https://crrev.com/8ba5761a1d6c8f1dc7f972b75487205bfb530256
> Cr-Commit-Position: refs/heads/master@{#411263}

TBR=ikilpatrick@chromium.org,cbiesinger@chromium.org,eae@chromium.org,glebl@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=635619

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

[modify] https://crrev.com/dd5c49b34b0648feae1af18ead4ebf4381f750fd/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/dd5c49b34b0648feae1af18ead4ebf4381f750fd/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/dd5c49b34b0648feae1af18ead4ebf4381f750fd/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/dd5c49b34b0648feae1af18ead4ebf4381f750fd/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/dd5c49b34b0648feae1af18ead4ebf4381f750fd/third_party/WebKit/Source/core/layout/ng/ng_box.h
[delete] https://crrev.com/ba1286d0e720ef723192e4a2af7e99d0516495d6/third_party/WebKit/Source/core/layout/ng/ng_box_iterator.cc
[delete] https://crrev.com/ba1286d0e720ef723192e4a2af7e99d0516495d6/third_party/WebKit/Source/core/layout/ng/ng_box_iterator.h

Components: Blink>Layout
Comment 24 by e...@chromium.org, Aug 11 2016
Blocking: 636993
Project Member Comment 25 by bugdroid1@chromium.org, Aug 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b76f8a89f3050ce49def73bc11fd08d055faf44c

commit b76f8a89f3050ce49def73bc11fd08d055faf44c
Author: eae <eae@chromium.org>
Date: Thu Aug 11 18:57:44 2016

[LayoutNG] Add writing mode to NGDerivedConstraintSpace

Split NGDerivedConstraintSpace into a separate header and add direction
and writing mode fields. Also change it to use NGLogicalOffset and Size
instead of individual LayoutUnit fields for the offset and size values.

BUG=635619
R=cbiesinger@chromium.org

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

[modify] https://crrev.com/b76f8a89f3050ce49def73bc11fd08d055faf44c/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/b76f8a89f3050ce49def73bc11fd08d055faf44c/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/b76f8a89f3050ce49def73bc11fd08d055faf44c/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[add] https://crrev.com/b76f8a89f3050ce49def73bc11fd08d055faf44c/third_party/WebKit/Source/core/layout/ng/ng_derived_constraint_space.h
[modify] https://crrev.com/b76f8a89f3050ce49def73bc11fd08d055faf44c/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/b76f8a89f3050ce49def73bc11fd08d055faf44c/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h

Project Member Comment 26 by bugdroid1@chromium.org, Aug 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e

commit d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e
Author: glebl <glebl@chromium.org>
Date: Thu Aug 11 19:41:59 2016

Demo patch that demonstrates simple block layout using Layout NG

This also includes NGBoxIterator for-loop iterator to iterate over sibling children of layout object.

BUG=635619

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

[modify] https://crrev.com/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.h
[modify] https://crrev.com/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e/third_party/WebKit/Source/core/layout/ng/ng_box.h
[add] https://crrev.com/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e/third_party/WebKit/Source/core/layout/ng/ng_box_iterator.cc
[add] https://crrev.com/d71da6eb5c6b03bf76679ea6d88f08ea78c0e86e/third_party/WebKit/Source/core/layout/ng/ng_box_iterator.h

Project Member Comment 27 by bugdroid1@chromium.org, Aug 11 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5424fcdd1fd7d64e8595ae483125debfee80fbee

commit 5424fcdd1fd7d64e8595ae483125debfee80fbee
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Aug 11 23:42:02 2016

[LayoutNG] Add tests for ng_length_utils.

Also respects fixed size on constraint space.

BUG=635619

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

[modify] https://crrev.com/5424fcdd1fd7d64e8595ae483125debfee80fbee/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/5424fcdd1fd7d64e8595ae483125debfee80fbee/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/5424fcdd1fd7d64e8595ae483125debfee80fbee/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[add] https://crrev.com/5424fcdd1fd7d64e8595ae483125debfee80fbee/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 28 by bugdroid1@chromium.org, Aug 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7e8f79d3410922d7e9c712062f249a4577359c63

commit 7e8f79d3410922d7e9c712062f249a4577359c63
Author: cbiesinger <cbiesinger@chromium.org>
Date: Fri Aug 12 00:55:20 2016

[layoutng] Move LayoutBox knowledge out of the NGBoxIterator

There is no need for the iterator to know about layout
objects/boxes; we can just add and use a nextSibling() method
on NGBox. This will simplify a possible future change to allow
NGBox objects to work even without an attached layout object.
(Such functionality would be especially useful for unit tests
at the moment)

R=eae@chromium.org,ikilpatrick@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/7e8f79d3410922d7e9c712062f249a4577359c63/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/7e8f79d3410922d7e9c712062f249a4577359c63/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/7e8f79d3410922d7e9c712062f249a4577359c63/third_party/WebKit/Source/core/layout/ng/ng_box.h
[modify] https://crrev.com/7e8f79d3410922d7e9c712062f249a4577359c63/third_party/WebKit/Source/core/layout/ng/ng_box_iterator.cc
[modify] https://crrev.com/7e8f79d3410922d7e9c712062f249a4577359c63/third_party/WebKit/Source/core/layout/ng/ng_box_iterator.h

Project Member Comment 29 by bugdroid1@chromium.org, Aug 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0c76086a9624118b9e7cdd5ae03420abf529171d

commit 0c76086a9624118b9e7cdd5ae03420abf529171d
Author: eae <eae@chromium.org>
Date: Fri Aug 12 20:43:04 2016

[LayoutNG] Switch NGConstraintSpace to NGLogicalSize

R=cbiesinger@chromium.org
BUG=635619

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

[modify] https://crrev.com/0c76086a9624118b9e7cdd5ae03420abf529171d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/0c76086a9624118b9e7cdd5ae03420abf529171d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/0c76086a9624118b9e7cdd5ae03420abf529171d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/0c76086a9624118b9e7cdd5ae03420abf529171d/third_party/WebKit/Source/core/layout/ng/ng_derived_constraint_space.h
[modify] https://crrev.com/0c76086a9624118b9e7cdd5ae03420abf529171d/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/0c76086a9624118b9e7cdd5ae03420abf529171d/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/0c76086a9624118b9e7cdd5ae03420abf529171d/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 30 by bugdroid1@chromium.org, Aug 19 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aec3029745fe492e73bc419ab4fc9844c3a0191d

commit aec3029745fe492e73bc419ab4fc9844c3a0191d
Author: cbiesinger <cbiesinger@chromium.org>
Date: Fri Aug 19 21:18:26 2016

[layoutng] Margin support, part 1

Support margins for positioning children.

Still to be done:
- margin: auto
- margins need to affect the size computation

R=eae@chromium.org,ikilpatrick@chromium.org,glebl@chromium.org
BUG=635619
NOTRY=true

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

[modify] https://crrev.com/aec3029745fe492e73bc419ab4fc9844c3a0191d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/aec3029745fe492e73bc419ab4fc9844c3a0191d/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/aec3029745fe492e73bc419ab4fc9844c3a0191d/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/aec3029745fe492e73bc419ab4fc9844c3a0191d/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/aec3029745fe492e73bc419ab4fc9844c3a0191d/third_party/WebKit/Source/core/layout/ng/ng_margin_strut.h
[modify] https://crrev.com/aec3029745fe492e73bc419ab4fc9844c3a0191d/third_party/WebKit/Source/core/style/StyleSurroundData.h

Project Member Comment 31 by bugdroid1@chromium.org, Aug 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/febef5e01067d1ff21b2f7af4b9c6b0e15023e84

commit febef5e01067d1ff21b2f7af4b9c6b0e15023e84
Author: cbiesinger <cbiesinger@chromium.org>
Date: Mon Aug 22 15:39:18 2016

Allow using overrideContainingBlockContentLogical{Width,Height} outside of grid

I am using it for the LayoutNG transition; there does not seem to be a need
to limit this to grid items as nothing else currently sets this.

This change also makes LayoutNG use this new function.

R=eae@chromium.org,ikilpatrick@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/febef5e01067d1ff21b2f7af4b9c6b0e15023e84/third_party/WebKit/Source/core/layout/LayoutBox.cpp
[modify] https://crrev.com/febef5e01067d1ff21b2f7af4b9c6b0e15023e84/third_party/WebKit/Source/core/layout/ng/ng_box.cc

Project Member Comment 32 by bugdroid1@chromium.org, Aug 23 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/60ff34ab72dc98e9fb050711faf9013d5b9ef9f1

commit 60ff34ab72dc98e9fb050711faf9013d5b9ef9f1
Author: cbiesinger <cbiesinger@chromium.org>
Date: Tue Aug 23 00:36:16 2016

[layoutng] LayoutOpportunities() only needs a bool, not an enum

The "avoid" argument only needs to distinguish between block and
inline/BFC, so simplify the argument list.

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

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

[modify] https://crrev.com/60ff34ab72dc98e9fb050711faf9013d5b9ef9f1/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/60ff34ab72dc98e9fb050711faf9013d5b9ef9f1/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h

Project Member Comment 33 by bugdroid1@chromium.org, Aug 23 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e66cd9caa74be985f45c426546d93555c2a5df53

commit e66cd9caa74be985f45c426546d93555c2a5df53
Author: cbiesinger <cbiesinger@chromium.org>
Date: Tue Aug 23 19:50:28 2016

[layoutng] Create a more correct constraint space for children

At the start of layout, create a new constraint space with our size
but the existing exclusions. This will be used as the base for
layout out our children. In the future, we will call layoutOpportunities()
on this constraint space to find the correct place for our
children.

Copying the offset should not be necessary as we start with a fresh (0,0)
offset for our children, relative to us.

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

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

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

Project Member Comment 34 by bugdroid1@chromium.org, Aug 24 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/36e71623779494dcdec9c1a5c4bbe369b70ffe21

commit 36e71623779494dcdec9c1a5c4bbe369b70ffe21
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Aug 24 17:59:48 2016

[layoutng] Correctly resolve indefinite percentages

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

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

[modify] https://crrev.com/36e71623779494dcdec9c1a5c4bbe369b70ffe21/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/36e71623779494dcdec9c1a5c4bbe369b70ffe21/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/36e71623779494dcdec9c1a5c4bbe369b70ffe21/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/36e71623779494dcdec9c1a5c4bbe369b70ffe21/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 35 by bugdroid1@chromium.org, Aug 24 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a

commit ba2f2c86ea8e4b0f6bb744b679396911907b8d6a
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Aug 24 20:50:00 2016

[layoutng] Add an NGFragmentBuilder

This patch does a few things:
- Adds and uses an NGFragmentBuilder to create fragments
- Code style/variable and function naming cleanup in NGFragment
- Use the structs from ng_units in NGFragment to store sizes

R=eae@chromium.org,ikilpatrick@chromium.org
BUG=635619
NOTRY=true

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

[modify] https://crrev.com/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.cc
[modify] https://crrev.com/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[add] https://crrev.com/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[add] https://crrev.com/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/ba2f2c86ea8e4b0f6bb744b679396911907b8d6a/third_party/WebKit/Source/core/layout/ng/ng_text_fragment.h

Project Member Comment 36 by bugdroid1@chromium.org, Aug 25 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e6e1b27c1004a687eb183822f912c25693414a40

commit e6e1b27c1004a687eb183822f912c25693414a40
Author: glebl <glebl@chromium.org>
Date: Thu Aug 25 18:08:16 2016

Do not call check-webkit-style with empty affected file list as it tries to check all edited files including the skipped ones

This patch changes _CheckStyle to prevent calling check-webkit-style with empty arguments list if all files got filtered out.

BUG=635619
TEST=third_party/WebKit/PRESUBMIT_test.py

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

[modify] https://crrev.com/e6e1b27c1004a687eb183822f912c25693414a40/third_party/WebKit/PRESUBMIT.py
[add] https://crrev.com/e6e1b27c1004a687eb183822f912c25693414a40/third_party/WebKit/PRESUBMIT_test.py

Project Member Comment 37 by bugdroid1@chromium.org, Aug 25 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d

commit b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Aug 25 18:28:28 2016

[layoutng] Rename struct members to match style guide

This was focused on ng_units and ng_margin_strut, though I also updated
some more variables in ng_block_layout_algorithm.

https://google.github.io/styleguide/cppguide.html#Variable_Names

R=ikilpatrick@chromium.org,eae@chromium.org
BUG=635619
NOTRY=true

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

[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.cc
[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_margin_strut.h
[modify] https://crrev.com/b2a706bf1f9886fa6c91dc23b7dc4bc5c2c2498d/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 38 by bugdroid1@chromium.org, Aug 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/595223a9a96bf85570f9e7b846e4e1a789ef164d

commit 595223a9a96bf85570f9e7b846e4e1a789ef164d
Author: cbiesinger <cbiesinger@chromium.org>
Date: Fri Aug 26 06:28:44 2016

[layoutng] Move and rename NGBoxMargins to NGBoxStrut

I want to reuse this struct for borders and padding as well, so I want
to rename it to a more generic name, and it belongs more to ng_units.h

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

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

[modify] https://crrev.com/595223a9a96bf85570f9e7b846e4e1a789ef164d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/595223a9a96bf85570f9e7b846e4e1a789ef164d/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/595223a9a96bf85570f9e7b846e4e1a789ef164d/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/595223a9a96bf85570f9e7b846e4e1a789ef164d/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/595223a9a96bf85570f9e7b846e4e1a789ef164d/third_party/WebKit/Source/core/layout/ng/ng_margin_strut.h
[modify] https://crrev.com/595223a9a96bf85570f9e7b846e4e1a789ef164d/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 39 by bugdroid1@chromium.org, Aug 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6f16535150edfba413105be7327ab4bb3ce630d7

commit 6f16535150edfba413105be7327ab4bb3ce630d7
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Aug 26 17:59:31 2016

[LayoutNG] Introduces NGPhysicalConstraintSpace and makes NGConstraintSpace a "view".

NGConstraintSpace now has a backing NGPhysicalConstaintSpace and
provides abstract coordinate system accessors for everything.

Makes NG*ConstraintSpace GarbagedCollected as well as we'll need
this once we move to a state machine / for caching fragment results.

BUG=635619

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

[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_box.h
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[add] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[add] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_derived_constraint_space.cc
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_derived_constraint_space.h
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[add] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[add] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[modify] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_units.h
[add] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_writing_mode.cc
[add] https://crrev.com/6f16535150edfba413105be7327ab4bb3ce630d7/third_party/WebKit/Source/core/layout/ng/ng_writing_mode.h

Project Member Comment 40 by bugdroid1@chromium.org, Aug 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/45ad03d295dd8f8885465f10d5f1d0a3d55bfb76

commit 45ad03d295dd8f8885465f10d5f1d0a3d55bfb76
Author: cbiesinger <cbiesinger@chromium.org>
Date: Fri Aug 26 20:30:07 2016

[layoutng] async layout part 1: Change the API to support async

The implementation is not async yet. I will add the state machine in a second
CL.

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

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

[modify] https://crrev.com/45ad03d295dd8f8885465f10d5f1d0a3d55bfb76/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/45ad03d295dd8f8885465f10d5f1d0a3d55bfb76/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/45ad03d295dd8f8885465f10d5f1d0a3d55bfb76/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/45ad03d295dd8f8885465f10d5f1d0a3d55bfb76/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/45ad03d295dd8f8885465f10d5f1d0a3d55bfb76/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/45ad03d295dd8f8885465f10d5f1d0a3d55bfb76/third_party/WebKit/Source/core/layout/ng/ng_box.h
[modify] https://crrev.com/45ad03d295dd8f8885465f10d5f1d0a3d55bfb76/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h

Project Member Comment 41 by bugdroid1@chromium.org, Aug 29 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/610b75f9d65f2e849fd6505e21c475020862f6e9

commit 610b75f9d65f2e849fd6505e21c475020862f6e9
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Mon Aug 29 19:45:19 2016

[layoutng] Implement state machine for async layout

This turned out to be more involved than I expected, because I had to make
more classes garbage-collected in order to make them members.

I later learned that I could have gotten by with not making some of them
gc'd and instead just tracing them (as described in the last part of "Field
Errors" in https://www.chromium.org/developers/blink-gc-plugin-errors), so let
me know if you want me to go back to that approach.

This also removes NGBoxIterator in favor of just traversing nextSibling
manually; with the async code, this works more naturally. I also
changed NGBox to always point to a layout object, and using nullptr
when it is not pointing to one, with it being garbage collected that
also worked more naturally that way.

R=eae@chromium.org, ikilpatrick@chromium.org, glebl@chromium.org
BUG=635619

Review URL: https://codereview.chromium.org/2284983002 .

Cr-Commit-Position: refs/heads/master@{#415027}

[modify] https://crrev.com/610b75f9d65f2e849fd6505e21c475020862f6e9/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/610b75f9d65f2e849fd6505e21c475020862f6e9/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/610b75f9d65f2e849fd6505e21c475020862f6e9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/610b75f9d65f2e849fd6505e21c475020862f6e9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/610b75f9d65f2e849fd6505e21c475020862f6e9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/610b75f9d65f2e849fd6505e21c475020862f6e9/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/610b75f9d65f2e849fd6505e21c475020862f6e9/third_party/WebKit/Source/core/layout/ng/ng_box.h
[delete] https://crrev.com/781204305cdc8bb696fb9b068b03cbd3d1b51a26/third_party/WebKit/Source/core/layout/ng/ng_box_iterator.cc
[delete] https://crrev.com/781204305cdc8bb696fb9b068b03cbd3d1b51a26/third_party/WebKit/Source/core/layout/ng/ng_box_iterator.h
[modify] https://crrev.com/610b75f9d65f2e849fd6505e21c475020862f6e9/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/610b75f9d65f2e849fd6505e21c475020862f6e9/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h

Project Member Comment 42 by bugdroid1@chromium.org, Aug 30 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/eeb67bf7fa6ef96b9840540db0753ba5847fee94

commit eeb67bf7fa6ef96b9840540db0753ba5847fee94
Author: eae <eae@chromium.org>
Date: Tue Aug 30 05:32:39 2016

[LayoutNG] Construct ConstraintSpace form Physical

Have the NGConstraintSpace constructors take a NGPhysicalConstraintSpace
and make it mandatory. Also add accessors to NGConstraintSpace and allow
a new NGPhysicalConstraintSpace to be constructed from a NGPhysicalSize.

R=ikilpatrick@chromium.org,cbiesinger@chromium.org
BUG=635619
NOTRY=true

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

[modify] https://crrev.com/eeb67bf7fa6ef96b9840540db0753ba5847fee94/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/eeb67bf7fa6ef96b9840540db0753ba5847fee94/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/eeb67bf7fa6ef96b9840540db0753ba5847fee94/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/eeb67bf7fa6ef96b9840540db0753ba5847fee94/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h

Project Member Comment 43 by bugdroid1@chromium.org, Aug 30 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/711a3a27b412945f808224f948c0d0e0e8a7bd1d

commit 711a3a27b412945f808224f948c0d0e0e8a7bd1d
Author: eae <eae@chromium.org>
Date: Tue Aug 30 20:42:59 2016

[LayoutNG] Initial NGLayoutOpportunityIterator implementation

Add initial simple NGLayoutOpportunityIterator implementation. Does not
yet handle exclusions, inlines or bfcs.

R=ikilpatrick@chromium.org,cbiesinger@chromium.org
BUG=635619

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

[modify] https://crrev.com/711a3a27b412945f808224f948c0d0e0e8a7bd1d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/711a3a27b412945f808224f948c0d0e0e8a7bd1d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/711a3a27b412945f808224f948c0d0e0e8a7bd1d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/711a3a27b412945f808224f948c0d0e0e8a7bd1d/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/711a3a27b412945f808224f948c0d0e0e8a7bd1d/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h

Project Member Comment 44 by bugdroid1@chromium.org, Aug 30 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e7fe98f3266e524d133c285ccc944f4e48d9c9e4

commit e7fe98f3266e524d133c285ccc944f4e48d9c9e4
Author: cbiesinger <cbiesinger@chromium.org>
Date: Tue Aug 30 22:41:42 2016

[layoutng] Add methods to compute border and padding

R=ikilpatrick@chromium.org,eae@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/e7fe98f3266e524d133c285ccc944f4e48d9c9e4/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/e7fe98f3266e524d133c285ccc944f4e48d9c9e4/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/e7fe98f3266e524d133c285ccc944f4e48d9c9e4/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/e7fe98f3266e524d133c285ccc944f4e48d9c9e4/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 45 by bugdroid1@chromium.org, Aug 31 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e9e67c7f04956745211b80a1f2996209f9aa1b7c

commit e9e67c7f04956745211b80a1f2996209f9aa1b7c
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Aug 31 02:40:26 2016

[LayoutNG] Introduce NGPhysicalFragment and make NGFragment a 'view'

- Adds a bunch of conversion functions between physical and logical offsets and sizes.
- The NGAlgorithm now outputs a NGPhysicalFragment (NGFragment output doesn't make sense in this instance as would immediately get unwrapped and destroyed).

BUG=635619

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

[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_box.h
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[add] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_direction.cc
[add] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_direction.h
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.cc
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[add] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[add] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.cc
[add] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.h
[add] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_physical_text_fragment.h
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_text_fragment.cc
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_text_fragment.h
[add] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_units.h
[add] https://crrev.com/e9e67c7f04956745211b80a1f2996209f9aa1b7c/third_party/WebKit/Source/core/layout/ng/ng_units_test.cc

Project Member Comment 46 by bugdroid1@chromium.org, Aug 31 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7cd22eaca633bf31c2c3ce11ebe7faefb85dd551

commit 7cd22eaca633bf31c2c3ce11ebe7faefb85dd551
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Wed Aug 31 19:20:51 2016

[layoutng] fix incorrect vector sizing

We need to set the capacity, not the size, to children_.size() because
otherwise the following append() calls will not do the right thing.

R=eae@chromium.org, ikilpatrick@chromium.org, glebl@chromium.org
BUG=635619

Review URL: https://codereview.chromium.org/2295233002 .

Cr-Commit-Position: refs/heads/master@{#415721}

[modify] https://crrev.com/7cd22eaca633bf31c2c3ce11ebe7faefb85dd551/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc

Project Member Comment 47 by bugdroid1@chromium.org, Sep 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ebf057e94cd8ca83476f8780ae7419f7ba8746cf

commit ebf057e94cd8ca83476f8780ae7419f7ba8746cf
Author: eae <eae@chromium.org>
Date: Thu Sep 01 03:03:13 2016

[LayoutNG] Merge NGDerivedConstraintSpace into NGConstraintSpace

BUG=635619
R=ikilpatrick@chromium.org

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

[modify] https://crrev.com/ebf057e94cd8ca83476f8780ae7419f7ba8746cf/third_party/WebKit/Source/core/core.gypi
[modify] https://crrev.com/ebf057e94cd8ca83476f8780ae7419f7ba8746cf/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/ebf057e94cd8ca83476f8780ae7419f7ba8746cf/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/ebf057e94cd8ca83476f8780ae7419f7ba8746cf/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/ebf057e94cd8ca83476f8780ae7419f7ba8746cf/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/ebf057e94cd8ca83476f8780ae7419f7ba8746cf/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[delete] https://crrev.com/33e6e6b45312ce953f9c4c2521b12705c1fe0fba/third_party/WebKit/Source/core/layout/ng/ng_derived_constraint_space.h
[modify] https://crrev.com/ebf057e94cd8ca83476f8780ae7419f7ba8746cf/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 48 by bugdroid1@chromium.org, Sep 2 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cc5ee3bd153773ff5e1b5b2ffcb4a392036d5c3d

commit cc5ee3bd153773ff5e1b5b2ffcb4a392036d5c3d
Author: glebl <glebl@chromium.org>
Date: Fri Sep 02 21:55:27 2016

Fix NGBox's iterator logic: FirstChild/NextSibling should return cached values instead of generating new one every time they are called.

BUG=635619

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

[modify] https://crrev.com/cc5ee3bd153773ff5e1b5b2ffcb4a392036d5c3d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/cc5ee3bd153773ff5e1b5b2ffcb4a392036d5c3d/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/cc5ee3bd153773ff5e1b5b2ffcb4a392036d5c3d/third_party/WebKit/Source/core/layout/ng/ng_box.h
[modify] https://crrev.com/cc5ee3bd153773ff5e1b5b2ffcb4a392036d5c3d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/cc5ee3bd153773ff5e1b5b2ffcb4a392036d5c3d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/cc5ee3bd153773ff5e1b5b2ffcb4a392036d5c3d/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.h

Project Member Comment 49 by bugdroid1@chromium.org, Sep 8 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ca82afa768a58fb6f977d97673eb03be7559c7f3

commit ca82afa768a58fb6f977d97673eb03be7559c7f3
Author: glebl <glebl@chromium.org>
Date: Thu Sep 08 14:50:29 2016

Initial implementation of Collapsing Margins computational logic for LayoutNG

This patches introduces the logic that computes Collapsing Margins for the
following pairs:
- top margin of a box and top margin of its first in-flow child
- bottom margin of box and top margin of its next in-flow following sibling

This implementation doesn't take into account any Margins Collapsing style exceptions, e.g. padding, borders etc.

Design document: https://docs.google.com/document/d/1uxbDh4uONFQOiGuiumlJBLGgO4KDWB8ZEkp7Rd47fw4/edit#bookmark=id.gk14n6z7jt8a

BUG=635619

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

[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.cc
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[delete] https://crrev.com/d60491196cbaee9f9f8840b2178dea6b234c0b71/third_party/WebKit/Source/core/layout/ng/ng_margin_strut.h
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.h
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_physical_text_fragment.h
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/ca82afa768a58fb6f977d97673eb03be7559c7f3/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 50 by bugdroid1@chromium.org, Sep 8 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/14ce7d174f87288a351c4eee7a511bd7ba526fc9

commit 14ce7d174f87288a351c4eee7a511bd7ba526fc9
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Sep 08 22:57:43 2016

[layout-ng] Use correct height for ContainerBlockSize

https://codereview.chromium.org/2154593003 added
availableLogicalHeightForPercentageComputation, shared with the regular
percentage computation code, so this is definitely correct.

R=ikilpatrick@chromium.org,eae@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/14ce7d174f87288a351c4eee7a511bd7ba526fc9/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc

Project Member Comment 51 by bugdroid1@chromium.org, Sep 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3a8d44bde377af4848928cac6fa3cae84a313ead

commit 3a8d44bde377af4848928cac6fa3cae84a313ead
Author: mstensho <mstensho@opera.com>
Date: Fri Sep 09 09:39:42 2016

Let LayoutNG handle childless block flows.

The fact that they are marked with childrenInline() doesn't matter if they have
no children.

BUG=635619

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

[modify] https://crrev.com/3a8d44bde377af4848928cac6fa3cae84a313ead/third_party/WebKit/Source/core/layout/ng/ng_box.cc

Project Member Comment 52 by bugdroid1@chromium.org, Sep 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b53662d7e6db470093f95c4dbdfce3255210b067

commit b53662d7e6db470093f95c4dbdfce3255210b067
Author: eae <eae@chromium.org>
Date: Fri Sep 09 17:29:11 2016

[LayoutNG] Split LayoutOpportunityIterator into separate file

Split the LayoutOpportunityIterator class into separate source & header
files ng_layout_opportunity_iterator.h|cc from ng_constraint_space.h|cc

BUG=635619
TBR=glebl@chromium.org

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

[modify] https://crrev.com/b53662d7e6db470093f95c4dbdfce3255210b067/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/b53662d7e6db470093f95c4dbdfce3255210b067/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/b53662d7e6db470093f95c4dbdfce3255210b067/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/b53662d7e6db470093f95c4dbdfce3255210b067/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[add] https://crrev.com/b53662d7e6db470093f95c4dbdfce3255210b067/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[add] https://crrev.com/b53662d7e6db470093f95c4dbdfce3255210b067/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h

Project Member Comment 53 by bugdroid1@chromium.org, Sep 10 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/539b00c243870d602bd89bbcdcf425d65553c1f5

commit 539b00c243870d602bd89bbcdcf425d65553c1f5
Author: mstensho <mstensho@opera.com>
Date: Sat Sep 10 09:06:12 2016

[LayoutNG] Handle border and padding when sizing a block and when placing its children.

BUG=635619

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

[modify] https://crrev.com/539b00c243870d602bd89bbcdcf425d65553c1f5/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/539b00c243870d602bd89bbcdcf425d65553c1f5/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/539b00c243870d602bd89bbcdcf425d65553c1f5/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/539b00c243870d602bd89bbcdcf425d65553c1f5/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h

Project Member Comment 54 by bugdroid1@chromium.org, Sep 13 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f714d2bd4450811bae2c849b075344eb31814cd6

commit f714d2bd4450811bae2c849b075344eb31814cd6
Author: cbiesinger <cbiesinger@chromium.org>
Date: Tue Sep 13 21:06:14 2016

[layoutng] Better handling of border and padding

This makes a few changes to the border/padding handling:
- Cache the computed value in a member variable instead of
  recomputing it for each child
- Makes sure to add block_end border and padding to the box size
- Takes border and padding into account for overflow size,
  and also for the constraint space size
- Remove functions that duplicate functionality from
  computeBorder/computePadding

BUG=635619

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

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

Project Member Comment 55 by bugdroid1@chromium.org, Sep 13 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e951eb5eee11982a32a402745cc19299d4fcb0b0

commit e951eb5eee11982a32a402745cc19299d4fcb0b0
Author: cbiesinger <cbiesinger@chromium.org>
Date: Tue Sep 13 23:16:04 2016

[layoutng] Handle box-sizing and correct margin handling for width: auto

Makes sure to only add border/padding for specified values, not keywords,
and makes sure to subtract margins when computing the size of width: auto/
fill-available or of height: fill-available.

BUG=635619

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

[modify] https://crrev.com/e951eb5eee11982a32a402745cc19299d4fcb0b0/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/e951eb5eee11982a32a402745cc19299d4fcb0b0/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/e951eb5eee11982a32a402745cc19299d4fcb0b0/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 56 by bugdroid1@chromium.org, Sep 13 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/329849949a9a4d49593c75167f2fc6fc8f405d48

commit 329849949a9a4d49593c75167f2fc6fc8f405d48
Author: glebl <glebl@chromium.org>
Date: Tue Sep 13 23:22:35 2016

Collapse bottom margins of a last child and its parent if parent's height=auto

This patch adds support of the margin collapsing case for the next vertically-adjacent box edges:
- bottom margin of a last in-flow child and bottom margin of its parent if the parent has 'auto' computed height
W3C spec: https://www.w3.org/TR/CSS2/box.html#collapsing-margins

BUG=635619

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

[modify] https://crrev.com/329849949a9a4d49593c75167f2fc6fc8f405d48/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/329849949a9a4d49593c75167f2fc6fc8f405d48/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/329849949a9a4d49593c75167f2fc6fc8f405d48/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/329849949a9a4d49593c75167f2fc6fc8f405d48/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 57 by bugdroid1@chromium.org, Sep 14 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c1dea8b946e05f7a48371f8413a23c47acae009

commit 3c1dea8b946e05f7a48371f8413a23c47acae009
Author: glebl <glebl@chromium.org>
Date: Wed Sep 14 21:38:39 2016

Do not collapse margins with padding/border b/w parent and first/last child

Do not collapse top/bottom margins if there is a padding or border between
first/last in-flow child and its parent.
W3C spec: https://www.w3.org/TR/CSS2/box.html#collapsing-margins

BUG=635619

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

[modify] https://crrev.com/3c1dea8b946e05f7a48371f8413a23c47acae009/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/3c1dea8b946e05f7a48371f8413a23c47acae009/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/3c1dea8b946e05f7a48371f8413a23c47acae009/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/3c1dea8b946e05f7a48371f8413a23c47acae009/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/3c1dea8b946e05f7a48371f8413a23c47acae009/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 58 by bugdroid1@chromium.org, Sep 14 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/982432d01a43f9bede4b7b442f9b7d5ffa8a20c2

commit 982432d01a43f9bede4b7b442f9b7d5ffa8a20c2
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Sep 14 22:22:51 2016

[layoutng] Set the intrinsic content logical height on the old layout tree

The overflow size is the content size without being affected by width/height
and max/min properties, so it's exactly what we need here.

This is important because without this change, there are DCHECK failures
if we're a child of a flexbox as the size remains at -1.

R=eae@chromium.org,ikilpatrick@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/982432d01a43f9bede4b7b442f9b7d5ffa8a20c2/third_party/WebKit/Source/core/layout/ng/ng_box.cc

Project Member Comment 59 by bugdroid1@chromium.org, Sep 14 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2eacf266f015eca06c70449f397d973bad57ae68

commit 2eacf266f015eca06c70449f397d973bad57ae68
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Sep 14 22:43:59 2016

[layoutng] Make sure to update m_isSelfCollapsing after ng layout

This will otherwise cause assertion failures on many pages.

We could also compute this in ng code during margin collapsing and just set it
on the old object, but I'm not sure that would be worth it.

This and https://codereview.chromium.org/2337763005/ fixes most (but not all)
of the assertion failures during legacy/ng interop.

R=ikilpatrick@chromium.org,eae@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/2eacf266f015eca06c70449f397d973bad57ae68/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/2eacf266f015eca06c70449f397d973bad57ae68/third_party/WebKit/Source/core/layout/LayoutBlockFlow.h
[modify] https://crrev.com/2eacf266f015eca06c70449f397d973bad57ae68/third_party/WebKit/Source/core/layout/ng/ng_box.cc

Project Member Comment 60 by bugdroid1@chromium.org, Sep 16 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/085cf0072e0fee548055cb21e34ac66a12d73321

commit 085cf0072e0fee548055cb21e34ac66a12d73321
Author: glebl <glebl@chromium.org>
Date: Fri Sep 16 22:37:18 2016

[LayoutNG] Fix broken layout while using CSS with writing modes.

1) This will set a writing mode to the fragment builder so it can be used at the time when we calculate a physical fragment.
2) Change computeMargin to accept 2 more parameters: Direction and writing mode.

TEST=NGBlockLayoutAlgorithmTest.LayoutBlockChildrenWithWritingMode
BUG=635619

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

[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/085cf0072e0fee548055cb21e34ac66a12d73321/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 61 by bugdroid1@chromium.org, Sep 16 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/778b1cffa40fa6956ea4aa30623fca8b10a35309

commit 778b1cffa40fa6956ea4aa30623fca8b10a35309
Author: cbiesinger <cbiesinger@chromium.org>
Date: Fri Sep 16 22:43:24 2016

[layoutng] Add out-of-flow objects to the positioned objects map

This fixes the main remaining assertion in legacy/ng interop.

BUG=635619
R=eae@chromium.org,ikilpatrick@chromium.org,glebl@chromium.org

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

[modify] https://crrev.com/778b1cffa40fa6956ea4aa30623fca8b10a35309/third_party/WebKit/Source/core/layout/ng/ng_box.cc

Project Member Comment 62 by bugdroid1@chromium.org, Sep 17 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/94e8b628668646bf578d3f350e7d6d5ca0453e54

commit 94e8b628668646bf578d3f350e7d6d5ca0453e54
Author: cbiesinger <cbiesinger@chromium.org>
Date: Sat Sep 17 03:05:42 2016

[layoutng] Remove TODO comment about DeviceWidth/DeviceHeight

I have verified that vh/vw are resolved by the style system before these
units reach layout, so we don't need to worry about DeviceWidth/DeviceHeight
here.

R=mstensho@opera.com,eae@chromium.org,ikilpatrick@chromium.org
BUG=635619

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

[modify] https://crrev.com/94e8b628668646bf578d3f350e7d6d5ca0453e54/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc

Project Member Comment 63 by bugdroid1@chromium.org, Sep 20 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/761988cdc921282f5a7baa7e56b511456c4e1843

commit 761988cdc921282f5a7baa7e56b511456c4e1843
Author: Christian Biesinger <cbiesinger@chromium.org>
Date: Tue Sep 20 16:25:38 2016

[layoutng] Create correct constraint spaces for children

This does a couple of things:
- Rationalizes the constructors for the NGConstraintSpace. We need the
  following:
  - A constructor for use by the layout opportunity iterator. The only thing
    this constructor changes is the size and the offset:
    NGConstraintSpace(const NGConstraintSpace&, NGLogicalOffset, NGLogicalSize);
  - A constructor for use by layout algorithms, as a basis for finding
    layout opportunities. This should reset the offset, set the container size,
    writing mode and direction and reset the fixed size properties:
    NGConstraintSpace(NGWritingMode, NGDirection, const NGConstraintSpace&, NGLogicalSize);
  - A constructor for tests and the root constraint space:
    NGConstraintSpace(NGWritingMode, NGDirection, NGLogicalSize);
- Makes sure to clamp inline and block sizes to zero after we subtract border
  and padding
- Make sure not to subtract border and padding from an indefinite size

R=eae@chromium.org, ikilpatrick@chromium.org, mstensho@opera.com
BUG=635619

Review URL: https://codereview.chromium.org/2346403002 .

Cr-Commit-Position: refs/heads/master@{#419787}

[modify] https://crrev.com/761988cdc921282f5a7baa7e56b511456c4e1843/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/761988cdc921282f5a7baa7e56b511456c4e1843/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/761988cdc921282f5a7baa7e56b511456c4e1843/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/761988cdc921282f5a7baa7e56b511456c4e1843/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/761988cdc921282f5a7baa7e56b511456c4e1843/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/761988cdc921282f5a7baa7e56b511456c4e1843/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 64 by bugdroid1@chromium.org, Sep 21 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/67a801a052b6bec0bdf62145d190f9bd2e6e9a36

commit 67a801a052b6bec0bdf62145d190f9bd2e6e9a36
Author: glebl <glebl@chromium.org>
Date: Wed Sep 21 05:43:21 2016

Ignore zero-height fragments during margin collapsing

1) Ignore zero-height fragments during margin collapsing step.
See https://www.w3.org/TR/CSS2/box.html#collapsing-margins
2) Change the order of expected/actual for all EXPECT_EQ in ng_block_layout_algorithm_test
3) Add more test expectations for the collapsing margin logic.

BUG=635619

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

[modify] https://crrev.com/67a801a052b6bec0bdf62145d190f9bd2e6e9a36/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/67a801a052b6bec0bdf62145d190f9bd2e6e9a36/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/67a801a052b6bec0bdf62145d190f9bd2e6e9a36/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/67a801a052b6bec0bdf62145d190f9bd2e6e9a36/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/67a801a052b6bec0bdf62145d190f9bd2e6e9a36/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/67a801a052b6bec0bdf62145d190f9bd2e6e9a36/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/67a801a052b6bec0bdf62145d190f9bd2e6e9a36/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 65 by bugdroid1@chromium.org, Sep 21 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/882e244a67cc80983cd3cc9eb648f2df18bcc4bf

commit 882e244a67cc80983cd3cc9eb648f2df18bcc4bf
Author: eae <eae@chromium.org>
Date: Wed Sep 21 10:49:26 2016

[LayoutNG] Multi-exclusion aware layout opportunities

Update layout opportunities implementation to handle multiple exclusions
and to support moving down to the next line if no suitable opportunities
can be found on the original line or once all those have been exhausted.

Very simple and un-optimized algorithm, trading performance for clarity.

BUG=635619
R=cbiesinger@chromium.org,ikilpatrick@chromium.org

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

[modify] https://crrev.com/882e244a67cc80983cd3cc9eb648f2df18bcc4bf/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/882e244a67cc80983cd3cc9eb648f2df18bcc4bf/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/882e244a67cc80983cd3cc9eb648f2df18bcc4bf/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/882e244a67cc80983cd3cc9eb648f2df18bcc4bf/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/882e244a67cc80983cd3cc9eb648f2df18bcc4bf/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/882e244a67cc80983cd3cc9eb648f2df18bcc4bf/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h

Project Member Comment 66 by bugdroid1@chromium.org, Sep 21 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c956496f471a2d9a826ed289201dd0a9e93f0e05

commit c956496f471a2d9a826ed289201dd0a9e93f0e05
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Sep 21 20:52:06 2016

[layoutng] Make sure to force child layout for the legacy/ng interop

We need to force this because the override size may have changed since
last time.

R=eae@chromium.org,mstensho@opera.com,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/c956496f471a2d9a826ed289201dd0a9e93f0e05/third_party/WebKit/Source/core/layout/ng/ng_box.cc

Project Member Comment 67 by bugdroid1@chromium.org, Sep 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5c2fc8168fc1adeb0029025c6b88b87bc84699d6

commit 5c2fc8168fc1adeb0029025c6b88b87bc84699d6
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Sep 22 22:19:42 2016

[layoutng] Add border and padding when setting the override size

This is necessary to avoid a DCHECK when opening the DOM inspector on
any page (and is also clearly correct)

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

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

[modify] https://crrev.com/5c2fc8168fc1adeb0029025c6b88b87bc84699d6/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc

Project Member Comment 68 by bugdroid1@chromium.org, Sep 28 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/80fe8dbc114625ffa8d7edb1f2443d82d298b03b

commit 80fe8dbc114625ffa8d7edb1f2443d82d298b03b
Author: glebl <glebl@chromium.org>
Date: Tue Sep 27 18:05:31 2016

Disable eager tracing for NGPhysicalFragment.

By default Oilpan has a limit on stackFrameDepth while tracing
HeapVector. Wrap NGPhysicalFragment into TraceEagerlyTrait class to fix that.

BUG=635619

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

[modify] https://crrev.com/80fe8dbc114625ffa8d7edb1f2443d82d298b03b/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h

Project Member Comment 69 by bugdroid1@chromium.org, Sep 29 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/53e875ecbadaba5aa5075a5701473d7a81fba946

commit 53e875ecbadaba5aa5075a5701473d7a81fba946
Author: glebl <glebl@chromium.org>
Date: Thu Sep 29 19:48:27 2016

Compute margin block start for 1st block in LayoutNG root constraint space

It will correctly compute margin block start for the 1st block in
LayoutNG's root constraint space. This is because margins of the root
element's box do not collapse https://www.w3.org/TR/CSS2/box.html#collapsing-margins

BUG=635619

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

[modify] https://crrev.com/53e875ecbadaba5aa5075a5701473d7a81fba946/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/53e875ecbadaba5aa5075a5701473d7a81fba946/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/53e875ecbadaba5aa5075a5701473d7a81fba946/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/53e875ecbadaba5aa5075a5701473d7a81fba946/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/53e875ecbadaba5aa5075a5701473d7a81fba946/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h

Project Member Comment 70 by bugdroid1@chromium.org, Oct 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ab0ea957e8f988b50bd224a08c3503c146b7ab7

commit 5ab0ea957e8f988b50bd224a08c3503c146b7ab7
Author: glebl <glebl@chromium.org>
Date: Sat Oct 01 06:10:58 2016

Remove redundant copy constructor for NGPhysicalConstraintSpace

The existing NGPhysicalConstraintSpace's copy constructor doesn't copy container_size_. This causes some bugs.
C++ compiler provides a copy constructor by default. Lets remove the redundant one.

BUG=635619

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

[modify] https://crrev.com/5ab0ea957e8f988b50bd224a08c3503c146b7ab7/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/5ab0ea957e8f988b50bd224a08c3503c146b7ab7/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h

Project Member Comment 71 by bugdroid1@chromium.org, Oct 4 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/30abb79af10482813dc76c87ebc7b0793f33e44f

commit 30abb79af10482813dc76c87ebc7b0793f33e44f
Author: glebl <glebl@chromium.org>
Date: Tue Oct 04 00:33:32 2016

Add virtual test suite to test LayoutNG code with fast/block/basic layout tests

For now mark all fast/block/basic tests with "Failure". This will be changed once
crrev.com/2389823003 is submitted.

BUG=635619

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

[modify] https://crrev.com/30abb79af10482813dc76c87ebc7b0793f33e44f/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/30abb79af10482813dc76c87ebc7b0793f33e44f/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/30abb79af10482813dc76c87ebc7b0793f33e44f/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/basic/README.txt

Project Member Comment 72 by bugdroid1@chromium.org, Oct 4 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1163ff6253bce80dde1d8960c80ed5deaf32c0a7

commit 1163ff6253bce80dde1d8960c80ed5deaf32c0a7
Author: glebl <glebl@chromium.org>
Date: Tue Oct 04 19:08:49 2016

Fix incorrectly calculated content_size for fragments that create new FC

This patch adds MarginStrut.BlockEndSum to the fragment's content size
if the fragment establishes a new formatting context.

The change is tested with layout_ng virtual test suite located in fast/block/basic.

BUG=635619

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

[modify] https://crrev.com/1163ff6253bce80dde1d8960c80ed5deaf32c0a7/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/1163ff6253bce80dde1d8960c80ed5deaf32c0a7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/1163ff6253bce80dde1d8960c80ed5deaf32c0a7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/1163ff6253bce80dde1d8960c80ed5deaf32c0a7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/1163ff6253bce80dde1d8960c80ed5deaf32c0a7/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/1163ff6253bce80dde1d8960c80ed5deaf32c0a7/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 73 by bugdroid1@chromium.org, Oct 4 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f5e4eed6ad759ea4ed120c7d2330d2ae726d6815

commit f5e4eed6ad759ea4ed120c7d2330d2ae726d6815
Author: glebl <glebl@chromium.org>
Date: Tue Oct 04 20:53:27 2016

Create LayoutNG virtual test suite for fast/block/margin-collapse path.

This creates a LayoutNG virtual test suite for fast/block/margin-collapse path and switches to use "Skip" instead of "Failure" to mark tests that LayoutNG doesn't support at this moment.

BUG=635619

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

[modify] https://crrev.com/f5e4eed6ad759ea4ed120c7d2330d2ae726d6815/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/f5e4eed6ad759ea4ed120c7d2330d2ae726d6815/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/f5e4eed6ad759ea4ed120c7d2330d2ae726d6815/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/margin-collapse/README.txt

Project Member Comment 74 by bugdroid1@chromium.org, Oct 6 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7

commit db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Oct 06 21:15:18 2016

[layoutng] margin: auto support

Add an ApplyAutoMargin function in ng_length_utils and use that from
ng_block_layout_algorithm.

I did not add it to computeMargins because not all callers should take
margin: auto into account. In particular, a child's width: auto computation
needs to treat margin: auto as zero (and, at any rate, does not have a fragment
available yet).

R=glebl@chromium.org,eae@chromium.org
BUG=635619

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

[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 75 by bugdroid1@chromium.org, Oct 6 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6b4f50b8ae18a17eb46c45f81c025dc1e2b1db9f

commit 6b4f50b8ae18a17eb46c45f81c025dc1e2b1db9f
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Oct 06 23:15:18 2016

[layoutng] Refactor NGBox::Layout

Move some of the code into two new functions to make everything more readable.

R=eae@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/6b4f50b8ae18a17eb46c45f81c025dc1e2b1db9f/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/6b4f50b8ae18a17eb46c45f81c025dc1e2b1db9f/third_party/WebKit/Source/core/layout/ng/ng_box.h

Project Member Comment 76 by bugdroid1@chromium.org, Oct 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/010709c620f2d8412ffd4cd11c545a074b01ea72

commit 010709c620f2d8412ffd4cd11c545a074b01ea72
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Oct 12 22:24:52 2016

[LayoutNG] Initial README.md file.

Contains a very basic overview of the NGLayoutAlgorithm :).

BUG=635619

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

[add] https://crrev.com/010709c620f2d8412ffd4cd11c545a074b01ea72/third_party/WebKit/Source/core/layout/ng/README.md

Project Member Comment 77 by bugdroid1@chromium.org, Oct 14 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e871b54f5e65f69b58ab4344f490f8d04faa06ab

commit e871b54f5e65f69b58ab4344f490f8d04faa06ab
Author: glebl <glebl@chromium.org>
Date: Fri Oct 14 18:24:14 2016

Refactor NGLayoutOpportunityIterator to use 3-nodes spatial tree

This patch introduces a new layout opportunity iterator algorithm which is based on 3-nodes spatial tree. The new approach has several benefits from the existing one:
- improved runtime complexity to find layout opportunities: O(N log N)
- ability to reuse the tree, e.g. just insert a new exclusion down into the tree. Insert operation shouldn't take longer than 2 x log N time.

BUG=635619

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

[modify] https://crrev.com/e871b54f5e65f69b58ab4344f490f8d04faa06ab/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/e871b54f5e65f69b58ab4344f490f8d04faa06ab/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/e871b54f5e65f69b58ab4344f490f8d04faa06ab/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/e871b54f5e65f69b58ab4344f490f8d04faa06ab/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/e871b54f5e65f69b58ab4344f490f8d04faa06ab/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[add] https://crrev.com/e871b54f5e65f69b58ab4344f490f8d04faa06ab/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h
[modify] https://crrev.com/e871b54f5e65f69b58ab4344f490f8d04faa06ab/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/e871b54f5e65f69b58ab4344f490f8d04faa06ab/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[modify] https://crrev.com/e871b54f5e65f69b58ab4344f490f8d04faa06ab/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 78 by bugdroid1@chromium.org, Oct 18 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9c99bf64a25d97e714fbbeba69ed0384e98eb1ed

commit 9c99bf64a25d97e714fbbeba69ed0384e98eb1ed
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue Oct 18 02:50:56 2016

[LayoutNG] Capitalize functions in ng_length_utils.h

BUG=635619

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

[modify] https://crrev.com/9c99bf64a25d97e714fbbeba69ed0384e98eb1ed/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/9c99bf64a25d97e714fbbeba69ed0384e98eb1ed/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/9c99bf64a25d97e714fbbeba69ed0384e98eb1ed/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/9c99bf64a25d97e714fbbeba69ed0384e98eb1ed/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/9c99bf64a25d97e714fbbeba69ed0384e98eb1ed/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 79 by bugdroid1@chromium.org, Oct 18 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bf964eb2871efa5f52041b13c3f9a7dfa4b93a24

commit bf964eb2871efa5f52041b13c3f9a7dfa4b93a24
Author: glebl <glebl@chromium.org>
Date: Tue Oct 18 05:56:37 2016

Create FloatingObject from NG Fragment in old Layout tree

This will create FloatingObjects from fragments in old Layout tree. FloatingObjects are required by BlockFlowPainter that uses them to paint floats.
BUG=635619

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

[modify] https://crrev.com/bf964eb2871efa5f52041b13c3f9a7dfa4b93a24/third_party/WebKit/Source/core/layout/ng/ng_box.cc

Project Member Comment 80 by bugdroid1@chromium.org, Oct 19 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0f6bd94a8898f85dbc05152065c55a5fffcdcccb

commit 0f6bd94a8898f85dbc05152065c55a5fffcdcccb
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Oct 19 01:35:42 2016

[LayoutNG] Fix orthogonal writing mode child margin strut from being used in collapsing margins calculation.

Also changes where the margin strut is stored, which may be a bad idea?

BUG=635619

Review-Url: https://chromiumcodereview.appspot.com/2417113002
Cr-Commit-Position: refs/heads/master@{#426106}

[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.cc
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.h
[modify] https://crrev.com/0f6bd94a8898f85dbc05152065c55a5fffcdcccb/third_party/WebKit/Source/core/layout/ng/ng_physical_text_fragment.h

Project Member Comment 81 by bugdroid1@chromium.org, Oct 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/05059b38db14102048bfbe34bafbaf52b9fcc7ba

commit 05059b38db14102048bfbe34bafbaf52b9fcc7ba
Author: glebl <glebl@chromium.org>
Date: Sat Oct 22 05:46:46 2016

Initial implementation of LayoutNG's block layout algorithm for floats.

This patch adds support of left/right floats in LayoutNG code.

Things that are not supported yet:
 - top aligning floats
 - clearing
 - child blocks in the same formatting formatting context

BUG=635619
TEST=virtual/layout_ng/fast/block/float, NGBlockLayoutAlgorithmTest::PositionFloatFragments

Review-Url: https://chromiumcodereview.appspot.com/2435803005
Cr-Commit-Position: refs/heads/master@{#426982}

[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/LayoutTests/virtual/layout_ng/fast/block/float/README.txt
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[add] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h
[modify] https://crrev.com/05059b38db14102048bfbe34bafbaf52b9fcc7ba/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 82 by bugdroid1@chromium.org, Oct 23 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ce86bdc2a63e021733d86af975d0ce47e38ec935

commit ce86bdc2a63e021733d86af975d0ce47e38ec935
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Sun Oct 23 13:39:05 2016

[LayoutNG] Remove one NGConstraintSpace constructor, mark others for removal.

Once the builder is added only the:
NGConstraintSpace(NGWritingMode, NGDirection, NGPhysicalConstraintSpace*)

should remain, this mirrors the NGFragment constructor which is just a "view"
on top of the NGPhysicalFragment.

This mirrors:
NGFragment(NGWritingMode, NGDirection, NGPhysicalFragment*)

BUG=635619

Review-Url: https://chromiumcodereview.appspot.com/2442123002
Cr-Commit-Position: refs/heads/master@{#426995}

[modify] https://crrev.com/ce86bdc2a63e021733d86af975d0ce47e38ec935/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/ce86bdc2a63e021733d86af975d0ce47e38ec935/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/ce86bdc2a63e021733d86af975d0ce47e38ec935/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/ce86bdc2a63e021733d86af975d0ce47e38ec935/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc

Project Member Comment 83 by bugdroid1@chromium.org, Oct 25 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/64a8a9fadd701d4049974d569fbea4b99ac49ea0

commit 64a8a9fadd701d4049974d569fbea4b99ac49ea0
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue Oct 25 01:03:53 2016

[LayoutNG] Remove derived constraint spaces from opportunity iterator.

Creating derived constraint spaces from the layout opportunity iterator wasn't being used for the float case, and isn't needed for the text case either. Removing!

BUG=635619

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

[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h
[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/64a8a9fadd701d4049974d569fbea4b99ac49ea0/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 84 by bugdroid1@chromium.org, Oct 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6c72d27c88f4b2a17321e71951663a0b12c36d0d

commit 6c72d27c88f4b2a17321e71951663a0b12c36d0d
Author: glebl <glebl@chromium.org>
Date: Wed Oct 26 02:32:17 2016

Add NGLogicalOrigin and NGLogicalLeader parameters to NGLayoutOpportunityIterator.

NGLogicalOrigin will be used as a starting point for all layout opportunities generated by NGLayoutOpportunityIterator.
NGLogicalLeader will be used as a ending point of temporary excluded rectangle that represents a text fragment.

BUG=635619

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

[modify] https://crrev.com/6c72d27c88f4b2a17321e71951663a0b12c36d0d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/6c72d27c88f4b2a17321e71951663a0b12c36d0d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/6c72d27c88f4b2a17321e71951663a0b12c36d0d/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/6c72d27c88f4b2a17321e71951663a0b12c36d0d/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/6c72d27c88f4b2a17321e71951663a0b12c36d0d/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 85 by bugdroid1@chromium.org, Oct 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/96a02ed3c20fcc3508b08bddf613abd5e57a225d

commit 96a02ed3c20fcc3508b08bddf613abd5e57a225d
Author: glebl <glebl@chromium.org>
Date: Wed Oct 26 16:23:48 2016

Resolve ApplyAutoMargins's TODO in NGBlockLayoutAlgorithm.

Combine 2 methods related to child margins calculation into one.

BUG=635619

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

[modify] https://crrev.com/96a02ed3c20fcc3508b08bddf613abd5e57a225d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/96a02ed3c20fcc3508b08bddf613abd5e57a225d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/96a02ed3c20fcc3508b08bddf613abd5e57a225d/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/96a02ed3c20fcc3508b08bddf613abd5e57a225d/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/96a02ed3c20fcc3508b08bddf613abd5e57a225d/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 86 by bugdroid1@chromium.org, Oct 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/96a02ed3c20fcc3508b08bddf613abd5e57a225d

commit 96a02ed3c20fcc3508b08bddf613abd5e57a225d
Author: glebl <glebl@chromium.org>
Date: Wed Oct 26 16:23:48 2016

Resolve ApplyAutoMargins's TODO in NGBlockLayoutAlgorithm.

Combine 2 methods related to child margins calculation into one.

BUG=635619

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

[modify] https://crrev.com/96a02ed3c20fcc3508b08bddf613abd5e57a225d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/96a02ed3c20fcc3508b08bddf613abd5e57a225d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/96a02ed3c20fcc3508b08bddf613abd5e57a225d/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/96a02ed3c20fcc3508b08bddf613abd5e57a225d/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/96a02ed3c20fcc3508b08bddf613abd5e57a225d/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 87 by bugdroid1@chromium.org, Oct 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/347328c6573d9d46b61b668d2118a0e71bf83ed6

commit 347328c6573d9d46b61b668d2118a0e71bf83ed6
Author: atotic <atotic@chromium.org>
Date: Wed Oct 26 18:55:04 2016

NGPhysicalFragment implementation to cc file

absrel patch will add more interesting methods to NGPhysicalFragment
Moving implementation to file prepares us for future methods

BUG=635619

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

[modify] https://crrev.com/347328c6573d9d46b61b668d2118a0e71bf83ed6/third_party/WebKit/Source/core/layout/BUILD.gn
[add] https://crrev.com/347328c6573d9d46b61b668d2118a0e71bf83ed6/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/347328c6573d9d46b61b668d2118a0e71bf83ed6/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h

Project Member Comment 88 by bugdroid1@chromium.org, Oct 26 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b1409531577199ba07628761ac4c00385177c850

commit b1409531577199ba07628761ac4c00385177c850
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Oct 26 19:04:15 2016

[LayoutNG] Add NGConstraintSpaceBuilder class.

This patch just introduces the builder without changing the API surface of the
constraint space.

Once everything is moved to using the builder; I'll start changing the API
surface of the constraint space to have PercentageSize() etc.

BUG=635619

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

[modify] https://crrev.com/b1409531577199ba07628761ac4c00385177c850/third_party/WebKit/Source/core/layout/BUILD.gn
[add] https://crrev.com/b1409531577199ba07628761ac4c00385177c850/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[add] https://crrev.com/b1409531577199ba07628761ac4c00385177c850/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/b1409531577199ba07628761ac4c00385177c850/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/b1409531577199ba07628761ac4c00385177c850/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h

Project Member Comment 89 by bugdroid1@chromium.org, Oct 27 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/61cb21c3ff7bf876d947eceee36fd756cd5b8fef

commit 61cb21c3ff7bf876d947eceee36fd756cd5b8fef
Author: atotic <atotic@chromium.org>
Date: Thu Oct 27 02:06:10 2016

I've refactored LayoutCurrentChild for readability, TRACE for "no code in headers"

The switch statement that got refactored is going to grow for absrel, this'll make
it more manageable.

ptal

BUG=635619

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

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

Project Member Comment 90 by bugdroid1@chromium.org, Oct 27 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7a997dfad6e963e9f666c9bd3fcc76fc7531c58d

commit 7a997dfad6e963e9f666c9bd3fcc76fc7531c58d
Author: glebl <glebl@chromium.org>
Date: Thu Oct 27 02:41:00 2016

Split SetFixedSize and SetDirectionTriggersScrollbar in multiple functions.

This is a follow up patch that fixes https://codereview.chromium.org/2446243003/#msg11 comment and a couple of compiler warnings about unitialized values.

BUG=635619

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

[modify] https://crrev.com/7a997dfad6e963e9f666c9bd3fcc76fc7531c58d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/7a997dfad6e963e9f666c9bd3fcc76fc7531c58d/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h

Project Member Comment 91 by bugdroid1@chromium.org, Oct 27 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e24bddabaa514377a42f3ce4cca004a44a2c7d66

commit e24bddabaa514377a42f3ce4cca004a44a2c7d66
Author: glebl <glebl@chromium.org>
Date: Thu Oct 27 16:18:03 2016

Take into account fragment's margins while searching opportunities.

FindLayoutOpportunityForFragment should take into account fragment's margins while searching opportunities.

BUG=635619

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

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

Project Member Comment 92 by bugdroid1@chromium.org, Oct 27 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/453444244e58b4e26fc7e5772e75f7ed8b05d985

commit 453444244e58b4e26fc7e5772e75f7ed8b05d985
Author: atotic <atotic@chromium.org>
Date: Thu Oct 27 22:04:43 2016

CanUseNewLayout should trigger nglayout in more cases than we handle today.

CanUseNewLayout was returning false even if there were no inline children.
Ian confirmed that if there were no inline children, we should use
nglayout.

The root cause is that LayoutBlockFlow.isInline flag is initialized to true
in constructor.
It gets reset in LayoutBlockFlow::makeChildrenNonInline.
This code only gets called if at least one BlockFlow child is laid out. If all your children are absolute, this does not happen.

This change also causes 6 more existing virtual/nglayout test failures that I have not investigated.

BUG=635619

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

[modify] https://crrev.com/453444244e58b4e26fc7e5772e75f7ed8b05d985/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/453444244e58b4e26fc7e5772e75f7ed8b05d985/third_party/WebKit/Source/core/layout/ng/ng_box.cc

Project Member Comment 93 by bugdroid1@chromium.org, Oct 27 2016
Labels: merge-merged-2840
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7

commit db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Oct 06 21:15:18 2016

[layoutng] margin: auto support

Add an ApplyAutoMargin function in ng_length_utils and use that from
ng_block_layout_algorithm.

I did not add it to computeMargins because not all callers should take
margin: auto into account. In particular, a child's width: auto computation
needs to treat margin: auto as zero (and, at any rate, does not have a fragment
available yet).

R=glebl@chromium.org,eae@chromium.org
BUG=635619

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

[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/db9e18276e2915c4f59bb8f8f924e5a6cee3e0b7/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 94 by bugdroid1@chromium.org, Oct 27 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6b4f50b8ae18a17eb46c45f81c025dc1e2b1db9f

commit 6b4f50b8ae18a17eb46c45f81c025dc1e2b1db9f
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Oct 06 23:15:18 2016

[layoutng] Refactor NGBox::Layout

Move some of the code into two new functions to make everything more readable.

R=eae@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/6b4f50b8ae18a17eb46c45f81c025dc1e2b1db9f/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/6b4f50b8ae18a17eb46c45f81c025dc1e2b1db9f/third_party/WebKit/Source/core/layout/ng/ng_box.h

Project Member Comment 95 by bugdroid1@chromium.org, Oct 28 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/631ba4493ab55194d0ed2e2482c296f0aeadcb94

commit 631ba4493ab55194d0ed2e2482c296f0aeadcb94
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Oct 28 05:21:25 2016

[LayoutNG] Remove last NGConstraintSpace constructor.

The other patch is: https://codereview.chromium.org/2456973002/
Main usages was in tests and CreateFromLayoutObject.

BUG=635619

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

[modify] https://crrev.com/631ba4493ab55194d0ed2e2482c296f0aeadcb94/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/631ba4493ab55194d0ed2e2482c296f0aeadcb94/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/631ba4493ab55194d0ed2e2482c296f0aeadcb94/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/631ba4493ab55194d0ed2e2482c296f0aeadcb94/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/631ba4493ab55194d0ed2e2482c296f0aeadcb94/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 96 by bugdroid1@chromium.org, Oct 28 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/25499c90fd4d12a36436ba75a3260008a30c7c71

commit 25499c90fd4d12a36436ba75a3260008a30c7c71
Author: glebl <glebl@chromium.org>
Date: Fri Oct 28 18:41:44 2016

Make NGLayoutOpportunityIterator to support origin_point.

Origin point is used to filter layout opportunities that are positioned before the origin point.

BUG=635619

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

[modify] https://crrev.com/25499c90fd4d12a36436ba75a3260008a30c7c71/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/25499c90fd4d12a36436ba75a3260008a30c7c71/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/25499c90fd4d12a36436ba75a3260008a30c7c71/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/25499c90fd4d12a36436ba75a3260008a30c7c71/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/25499c90fd4d12a36436ba75a3260008a30c7c71/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 97 by bugdroid1@chromium.org, Oct 28 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c89a04f3ae1924c956b7bc732d429790bc57c3a8

commit c89a04f3ae1924c956b7bc732d429790bc57c3a8
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Oct 28 23:11:38 2016

[LayoutNG] Move ng_block_layout_algorithm to use constraint space builder.

This patch also moves the NGConstraintSpace to the constructor of the algorithm.

BUG=635619

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

[modify] https://crrev.com/c89a04f3ae1924c956b7bc732d429790bc57c3a8/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/c89a04f3ae1924c956b7bc732d429790bc57c3a8/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/c89a04f3ae1924c956b7bc732d429790bc57c3a8/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/c89a04f3ae1924c956b7bc732d429790bc57c3a8/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/c89a04f3ae1924c956b7bc732d429790bc57c3a8/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/c89a04f3ae1924c956b7bc732d429790bc57c3a8/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/c89a04f3ae1924c956b7bc732d429790bc57c3a8/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h

Project Member Comment 98 by bugdroid1@chromium.org, Oct 31 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/08d3a096f20ce0196474108dc8a28ceddc3203c3

commit 08d3a096f20ce0196474108dc8a28ceddc3203c3
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Mon Oct 31 18:25:00 2016

[LayoutNG] Remove simple constructors from NGPhysicalConstraintSpace.

BUG=635619

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

[modify] https://crrev.com/08d3a096f20ce0196474108dc8a28ceddc3203c3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/08d3a096f20ce0196474108dc8a28ceddc3203c3/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/08d3a096f20ce0196474108dc8a28ceddc3203c3/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/08d3a096f20ce0196474108dc8a28ceddc3203c3/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h

Project Member Comment 99 by bugdroid1@chromium.org, Nov 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/250a6979a3311cb8a39ca7d7f316353550362f86

commit 250a6979a3311cb8a39ca7d7f316353550362f86
Author: glebl <glebl@chromium.org>
Date: Tue Nov 01 01:38:25 2016

Use NGLogicalRect instead of NGExclusion to work with exclusions.

This patch does the following:
- Delete NGExclusion
- Change the code to use NGLogicalRect to store exclusions
- Make NGPhysicalConstraintSpace to own the list of exclusions through Vector<std::unique_ptr>
- Introduce WRITING_MODE_IGNORED macros that can be used to annotate cases where the writing mode is inored

BUG=635619

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

[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h
[add] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_macros.h
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 100 by bugdroid1@chromium.org, Nov 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3b41bfed7efb2d172f8a9706f09c0b793adda997

commit 3b41bfed7efb2d172f8a9706f09c0b793adda997
Author: kjellander <kjellander@chromium.org>
Date: Tue Nov 01 10:30:56 2016

Revert of Use NGLogicalRect instead of NGExclusion for exclusions. (patchset #5 id:110016 of https://codereview.chromium.org/2457013004/ )

Reason for revert:
Reverting to enable reverting of https://codereview.chromium.org/2458253002/ in https://codereview.chromium.org/2458253002/ due to  merge conflicts.

Please reland once the flakiness has been sorted out.

Original issue's description:
> Use NGLogicalRect instead of NGExclusion to work with exclusions.
>
> This patch does the following:
> - Delete NGExclusion
> - Change the code to use NGLogicalRect to store exclusions
> - Make NGPhysicalConstraintSpace to own the list of exclusions through Vector<std::unique_ptr>
> - Introduce WRITING_MODE_IGNORED macros that can be used to annotate cases where the writing mode is inored
>
> BUG=635619
>
> Committed: https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86
> Cr-Commit-Position: refs/heads/master@{#428907}

TBR=cbiesinger@chromium.org,eae@chromium.org,ikilpatrick@chromium.org,dpranke@chromium.org,glebl@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=635619

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

[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h
[delete] https://crrev.com/110bd1a0e95aa206bac438ee6bd3393741e52de2/third_party/WebKit/Source/core/layout/ng/ng_macros.h
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 101 by bugdroid1@chromium.org, Nov 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0ea81d7d3ea571b173fb462f2b0eeed4144000a0

commit 0ea81d7d3ea571b173fb462f2b0eeed4144000a0
Author: kjellander <kjellander@chromium.org>
Date: Tue Nov 01 10:47:30 2016

Revert of [LayoutNG] Remove simple constructors from NGPhysicalConstraintSpace. (patchset #2 id:20001 of https://codereview.chromium.org/2458253002/ )

Reason for revert:
Speculative revert due to failures in webkit_tests on WebKit Win7 (dbg) starting with https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win7%20%28dbg%29/builds/7940
(this was the only WebKit CL in the blamelist).

Original issue's description:
> [LayoutNG] Remove simple constructors from NGPhysicalConstraintSpace.
>
> BUG=635619
>
> Committed: https://crrev.com/08d3a096f20ce0196474108dc8a28ceddc3203c3
> Cr-Commit-Position: refs/heads/master@{#428757}

TBR=glebl@chromium.org,cbiesinger@chromium.org,ikilpatrick@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=635619

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

[modify] https://crrev.com/0ea81d7d3ea571b173fb462f2b0eeed4144000a0/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/0ea81d7d3ea571b173fb462f2b0eeed4144000a0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/0ea81d7d3ea571b173fb462f2b0eeed4144000a0/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/0ea81d7d3ea571b173fb462f2b0eeed4144000a0/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h

Project Member Comment 102 by bugdroid1@chromium.org, Nov 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ffacff4ca7b9d4a21d945091e2ee404711649b18

commit ffacff4ca7b9d4a21d945091e2ee404711649b18
Author: kjellander <kjellander@chromium.org>
Date: Tue Nov 01 14:24:58 2016

Reland of [LayoutNG] Remove simple constructors from NGPhysicalConstraintSpace. (patchset #1 id:1 of https://codereview.chromium.org/2470733002/ )

Reason for revert:
Relanding as newer builds showed the same failures: https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win7%20%28dbg%29/builds/7949

Original issue's description:
> Revert of [LayoutNG] Remove simple constructors from NGPhysicalConstraintSpace. (patchset #2 id:20001 of https://codereview.chromium.org/2458253002/ )
>
> Reason for revert:
> Speculative revert due to failures in webkit_tests on WebKit Win7 (dbg) starting with https://build.chromium.org/p/chromium.webkit/builders/WebKit%20Win7%20%28dbg%29/builds/7940
> (this was the only WebKit CL in the blamelist).
>
> Original issue's description:
> > [LayoutNG] Remove simple constructors from NGPhysicalConstraintSpace.
> >
> > BUG=635619
> >
> > Committed: https://crrev.com/08d3a096f20ce0196474108dc8a28ceddc3203c3
> > Cr-Commit-Position: refs/heads/master@{#428757}
>
> TBR=glebl@chromium.org,cbiesinger@chromium.org,ikilpatrick@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=635619
>
> Committed: https://crrev.com/0ea81d7d3ea571b173fb462f2b0eeed4144000a0
> Cr-Commit-Position: refs/heads/master@{#428975}

TBR=glebl@chromium.org,cbiesinger@chromium.org,ikilpatrick@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=635619

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

[modify] https://crrev.com/ffacff4ca7b9d4a21d945091e2ee404711649b18/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/ffacff4ca7b9d4a21d945091e2ee404711649b18/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/ffacff4ca7b9d4a21d945091e2ee404711649b18/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/ffacff4ca7b9d4a21d945091e2ee404711649b18/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h

Project Member Comment 103 by bugdroid1@chromium.org, Nov 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/33a189c87461dcecd60c7090e98aeb4a8f923964

commit 33a189c87461dcecd60c7090e98aeb4a8f923964
Author: kjellander <kjellander@chromium.org>
Date: Tue Nov 01 14:27:33 2016

Reland of Use NGLogicalRect instead of NGExclusion for exclusions. (patchset #1 id:1 of https://codereview.chromium.org/2467803002/ )

Reason for revert:
Relanding on top of https://codereview.chromium.org/2466913002/ since that one wasn't the culprit for the webkit_tests failures on WebKit Win7 (dbg).

Original issue's description:
> Revert of Use NGLogicalRect instead of NGExclusion for exclusions. (patchset #5 id:110016 of https://codereview.chromium.org/2457013004/ )
>
> Reason for revert:
> Reverting to enable reverting of https://codereview.chromium.org/2458253002/ in https://codereview.chromium.org/2458253002/ due to  merge conflicts.
>
> Please reland once the flakiness has been sorted out.
>
> Original issue's description:
> > Use NGLogicalRect instead of NGExclusion to work with exclusions.
> >
> > This patch does the following:
> > - Delete NGExclusion
> > - Change the code to use NGLogicalRect to store exclusions
> > - Make NGPhysicalConstraintSpace to own the list of exclusions through Vector<std::unique_ptr>
> > - Introduce WRITING_MODE_IGNORED macros that can be used to annotate cases where the writing mode is inored
> >
> > BUG=635619
> >
> > Committed: https://crrev.com/250a6979a3311cb8a39ca7d7f316353550362f86
> > Cr-Commit-Position: refs/heads/master@{#428907}
>
> TBR=cbiesinger@chromium.org,eae@chromium.org,ikilpatrick@chromium.org,dpranke@chromium.org,glebl@chromium.org
> # Skipping CQ checks because original CL landed less than 1 days ago.
> NOPRESUBMIT=true
> NOTREECHECKS=true
> NOTRY=true
> BUG=635619
>
> Committed: https://crrev.com/3b41bfed7efb2d172f8a9706f09c0b793adda997
> Cr-Commit-Position: refs/heads/master@{#428971}

TBR=cbiesinger@chromium.org,eae@chromium.org,ikilpatrick@chromium.org,dpranke@chromium.org,glebl@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=635619

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

[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h
[add] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_macros.h
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/33a189c87461dcecd60c7090e98aeb4a8f923964/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 104 by bugdroid1@chromium.org, Nov 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b9144a314b0cd585fbca0359214a7b2f9dd3480

commit 8b9144a314b0cd585fbca0359214a7b2f9dd3480
Author: glebl <glebl@chromium.org>
Date: Tue Nov 01 19:14:53 2016

Fix WRITING_MODE_IGNORED's comment in NGFragment::MarginStrut

BUG=635619

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

[modify] https://crrev.com/8b9144a314b0cd585fbca0359214a7b2f9dd3480/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc

Project Member Comment 105 by bugdroid1@chromium.org, Nov 3 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b4efe85b807d2fa034acd8108aa994148708e0a

commit 2b4efe85b807d2fa034acd8108aa994148708e0a
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Nov 03 01:04:45 2016

[layoutng] Support computing min-content and max-content

This is just the first step -- we still need to integrate this into
ng_length_utils as the next step, and optimize this by implementing
ComputeMinAndMaxContentSizes on the NGBLockLayoutAlgorithm.

In the meantime this implements the synthesized min-content and
max-content as described in the layoutng design doc:
https://docs.google.com/document/d/1uxbDh4uONFQOiGuiumlJBLGgO4KDWB8ZEkp7Rd47fw4/edit#heading=h.bkkc2a8yyuly

The unit test is very simple, but until we implement line layout we can't
really write a more comprehensive test.

R=ikilpatrick@chromium.org,atotic@chromium.org,eae@chromium.org
BUG=635619

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

[modify] https://crrev.com/2b4efe85b807d2fa034acd8108aa994148708e0a/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/2b4efe85b807d2fa034acd8108aa994148708e0a/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/2b4efe85b807d2fa034acd8108aa994148708e0a/third_party/WebKit/Source/core/layout/ng/ng_box.h
[add] https://crrev.com/2b4efe85b807d2fa034acd8108aa994148708e0a/third_party/WebKit/Source/core/layout/ng/ng_box_test.cc
[modify] https://crrev.com/2b4efe85b807d2fa034acd8108aa994148708e0a/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/2b4efe85b807d2fa034acd8108aa994148708e0a/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 106 by bugdroid1@chromium.org, Nov 3 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07703ad5e0afd141d4a6da847ffec5c372b7b566

commit 07703ad5e0afd141d4a6da847ffec5c372b7b566
Author: glebl <glebl@chromium.org>
Date: Thu Nov 03 16:57:01 2016

Constraint space for current child should be adjusted to offset.

As we now have space_for_current_child_ it should be used to search layout opportunities for floats. Also space_for_current_child_'s offset should be adjusted according to the available space.

List of changes:
- Change FindLayoutOpportunityForFragment to use space_for_current_child_.
- Rename CreateConstraintSpaceForChild -> CreateConstraintSpaceForCurrentChild and make it a private class's method.
- Adjust space_for_current_child_'s offset to the available space.
- Change NGBlockLayoutAlgorithmTest::PositionFloatFragments to include a regular block between floats.

BUG=635619

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

[modify] https://crrev.com/07703ad5e0afd141d4a6da847ffec5c372b7b566/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/07703ad5e0afd141d4a6da847ffec5c372b7b566/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/07703ad5e0afd141d4a6da847ffec5c372b7b566/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/07703ad5e0afd141d4a6da847ffec5c372b7b566/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/07703ad5e0afd141d4a6da847ffec5c372b7b566/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h

Project Member Comment 107 by bugdroid1@chromium.org, Nov 3 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e09ff76918cbd153161b9ab1062e690eb67d3ab

commit 2e09ff76918cbd153161b9ab1062e690eb67d3ab
Author: glebl <glebl@chromium.org>
Date: Thu Nov 03 18:18:18 2016

Add support of leader_point in NGLayoutOpportunityIterator.

Leader point together with origin_point creates a temporary exclusion that should be avoided in the layout opportunity iterator.

BUG=635619

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

[modify] https://crrev.com/2e09ff76918cbd153161b9ab1062e690eb67d3ab/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/2e09ff76918cbd153161b9ab1062e690eb67d3ab/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/2e09ff76918cbd153161b9ab1062e690eb67d3ab/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/2e09ff76918cbd153161b9ab1062e690eb67d3ab/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/2e09ff76918cbd153161b9ab1062e690eb67d3ab/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 108 by bugdroid1@chromium.org, Nov 3 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/26c7e1870906e9af248b2b323dc68d6f6d5a9187

commit 26c7e1870906e9af248b2b323dc68d6f6d5a9187
Author: mathp <mathp@chromium.org>
Date: Thu Nov 03 19:33:28 2016

Revert of Add support of leader_point in NGLayoutOpportunityIterator. (patchset #3 id:40001 of https://codereview.chromium.org/2472583006/ )

Reason for revert:
Causing a failure on Mac MSAN:

https://build.chromium.org/p/chromium.memory/builders/Mac%20ASan%2064%20Tests%20%281%29/builds/23812

Original issue's description:
> Add support of leader_point in NGLayoutOpportunityIterator.
>
> Leader point together with origin_point creates a temporary exclusion that should be avoided in the layout opportunity iterator.
>
> BUG=635619
>
> Committed: https://crrev.com/2e09ff76918cbd153161b9ab1062e690eb67d3ab
> Cr-Commit-Position: refs/heads/master@{#429650}

TBR=ikilpatrick@chromium.org,atotic@chromium.org,cbiesinger@chromium.org,glebl@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=635619

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

[modify] https://crrev.com/26c7e1870906e9af248b2b323dc68d6f6d5a9187/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/26c7e1870906e9af248b2b323dc68d6f6d5a9187/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/26c7e1870906e9af248b2b323dc68d6f6d5a9187/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/26c7e1870906e9af248b2b323dc68d6f6d5a9187/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/26c7e1870906e9af248b2b323dc68d6f6d5a9187/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 109 by bugdroid1@chromium.org, Nov 4 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ee9219e2ac383a0f44fb7b40dac2b6d10a491935

commit ee9219e2ac383a0f44fb7b40dac2b6d10a491935
Author: glebl <glebl@chromium.org>
Date: Fri Nov 04 03:00:33 2016

Add support of optional leader_point in NGLayoutOpportunityIterator

Leader point together with origin_point creates a temporary exclusion that should be avoided in the layout opportunity iterator.

This patch is based on the already reviewed, submitted, reverted patch http://crrev.com/2472583006 with the only difference that it uses WTF::Optional for NGLayoutOpportunityIterator's optional parameters.

BUG=635619

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

[modify] https://crrev.com/ee9219e2ac383a0f44fb7b40dac2b6d10a491935/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/ee9219e2ac383a0f44fb7b40dac2b6d10a491935/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/ee9219e2ac383a0f44fb7b40dac2b6d10a491935/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/ee9219e2ac383a0f44fb7b40dac2b6d10a491935/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/ee9219e2ac383a0f44fb7b40dac2b6d10a491935/third_party/WebKit/Source/core/layout/ng/ng_units.h

Comment 110 by dimu@google.com, Nov 4 2016
Labels: -merge-merged-2840
[Automated comment] removing mislabelled merge-merged-2840
Project Member Comment 111 by bugdroid1@chromium.org, Nov 4 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3e1ff14ac40160b59482a6a5b7f831fed757804d

commit 3e1ff14ac40160b59482a6a5b7f831fed757804d
Author: cbiesinger <cbiesinger@chromium.org>
Date: Fri Nov 04 22:49:56 2016

[layoutng] For min/max-content, take CanUseNewLayout() into account

Otherwise we'll crash when we have inlines.

R=atotic@chromium.org,eae@chromium.org
BUG=635619

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

[modify] https://crrev.com/3e1ff14ac40160b59482a6a5b7f831fed757804d/third_party/WebKit/Source/core/layout/ng/ng_box.cc

Project Member Comment 112 by bugdroid1@chromium.org, Nov 8 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56

commit 0f0f0b8544ca09a87a7c855210ca8fc1128b5a56
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue Nov 08 00:11:29 2016

[LayoutNG] Split apart storage for AvailableSize and PercentageSize.

Additionally removes ContainerSize.

We've got lots of small corner cases which we aren't handling correctly
in ng_length_utils (i.e. orthoganal writing mode %-resolution). But
will fix these in follow-up patch.

BUG=635619

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

[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_box.cc
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_units.h
[modify] https://crrev.com/0f0f0b8544ca09a87a7c855210ca8fc1128b5a56/third_party/WebKit/Source/core/layout/ng/ng_units_test.cc

Project Member Comment 113 by bugdroid1@chromium.org, Nov 8 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/820cba16a1d9eb47f80fa916a94372f1542c0c2f

commit 820cba16a1d9eb47f80fa916a94372f1542c0c2f
Author: cbiesinger <cbiesinger@chromium.org>
Date: Tue Nov 08 19:14:36 2016

[layoutng] Implement min-/max-content part 2.

This adds support to ng_length_utils for min/max/fit-content. It does not yet
change NGBlockLayoutAlgorithm to compute and pass the values to these
functions. However, it does add NeedMinAndMaxContentSizes which the algorithm
can use to determine whether it should compute the sizes (this will be a
performance optimization that I expect to be very important).

R=atotic@chromium.org,eae@chromium.org
BUG=635619

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

[modify] https://crrev.com/820cba16a1d9eb47f80fa916a94372f1542c0c2f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/820cba16a1d9eb47f80fa916a94372f1542c0c2f/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/820cba16a1d9eb47f80fa916a94372f1542c0c2f/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/820cba16a1d9eb47f80fa916a94372f1542c0c2f/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/820cba16a1d9eb47f80fa916a94372f1542c0c2f/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc

Project Member Comment 114 by bugdroid1@chromium.org, Nov 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a08a21f0000c1ee452b59c5a1dc74221b50fd042

commit a08a21f0000c1ee452b59c5a1dc74221b50fd042
Author: atotic <atotic@chromium.org>
Date: Wed Nov 09 23:18:27 2016

NGPhysicalDimensions -> NGPhysicalBoxStrut

as decided in chat.

BUG=635619

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

[modify] https://crrev.com/a08a21f0000c1ee452b59c5a1dc74221b50fd042/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/a08a21f0000c1ee452b59c5a1dc74221b50fd042/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 115 by bugdroid1@chromium.org, Nov 12 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7ce5c104a12aaae9f91ea5cf2329e4fb21ab78ab

commit 7ce5c104a12aaae9f91ea5cf2329e4fb21ab78ab
Author: atotic <atotic@chromium.org>
Date: Sat Nov 12 00:40:05 2016

Utility routines for ng_units

In preparation for landing abspos there I few routines I needed.

BUG=635619

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

[modify] https://crrev.com/7ce5c104a12aaae9f91ea5cf2329e4fb21ab78ab/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/7ce5c104a12aaae9f91ea5cf2329e4fb21ab78ab/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/7ce5c104a12aaae9f91ea5cf2329e4fb21ab78ab/third_party/WebKit/Source/core/layout/ng/ng_units.h
[modify] https://crrev.com/7ce5c104a12aaae9f91ea5cf2329e4fb21ab78ab/third_party/WebKit/Source/core/layout/ng/ng_units_test.cc

Project Member Comment 116 by bugdroid1@chromium.org, Nov 17 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9

commit d9c529de305db6eb0dde1052a39c9dd4b06f9bc9
Author: glebl <glebl@chromium.org>
Date: Thu Nov 17 21:21:04 2016

Add the support of "clear" CSS property to NG block layout algorithm.

This patch adds the support of "clear" CSS property for floating and non-floating elements.

Please note that this doesn't currently support some edge cases, e.g.  margin collapsing
should not occur if "clear" is applied to non-floating blocks.

List of changes:
- Add last left/right float exclusions to NGPhysicalConstraintSpace. They are used to enforce the top edge alignment
  rule for floats and for the support of CSS "clear" property.
- Add a new version of NGExclusion that encapsulates the exclusion type and rectangle in logical coordindates that represents that exclusion.
- Added some helper read-only getters to NGBlockLayoutAlgorithm: CurrentChildStyle(), ConstraintSpace() etc.
- Added AdjustToCSSClear that has the main logic that calculates the right content's offset based on CSS "clear" value.

BUG=635619
TEST=NGBlockLayoutAlgorithmTest::PositionFragmentsWithClear,
virtual/layout_ng/fast/block/float/max-width-clear-float-with-overflow-hidden.html

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

[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[modify] https://crrev.com/d9c529de305db6eb0dde1052a39c9dd4b06f9bc9/third_party/WebKit/Source/core/layout/ng/ng_units.h

Comment 117 by e...@chromium.org, Nov 18 2016
Labels: -Type-Bug Type-Feature
Project Member Comment 118 by bugdroid1@chromium.org, Nov 19 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e76a6397f156d4395468de7fa97fd46186f7c9bd

commit e76a6397f156d4395468de7fa97fd46186f7c9bd
Author: glebl <glebl@chromium.org>
Date: Fri Nov 18 23:56:27 2016

Fix the order of expected and actual values in PercentageResolutionSize test.

EXPECT_EQ expects that the 1st argument is the expected value. If the order is wrong it produces a confusing error message

BUG=635619

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

[modify] https://crrev.com/e76a6397f156d4395468de7fa97fd46186f7c9bd/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc

Project Member Comment 119 by bugdroid1@chromium.org, Nov 19 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5836e40a4c5491a4b7351a8f0835f3a4d36c92d8

commit 5836e40a4c5491a4b7351a8f0835f3a4d36c92d8
Author: atotic <atotic@chromium.org>
Date: Sat Nov 19 04:35:58 2016

AbsolutePositioning utilities with tests

These are the routines that implement absolute positioning specification.

ComputeAbsoluteHorizontal and ComputeAbsoluteVertical implement
the spec. They will be used by block_algorithm to position abspos elements.

BUG=635619

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

[modify] https://crrev.com/5836e40a4c5491a4b7351a8f0835f3a4d36c92d8/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/5836e40a4c5491a4b7351a8f0835f3a4d36c92d8/third_party/WebKit/Source/core/layout/BUILD.gn
[add] https://crrev.com/5836e40a4c5491a4b7351a8f0835f3a4d36c92d8/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc
[add] https://crrev.com/5836e40a4c5491a4b7351a8f0835f3a4d36c92d8/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.h
[add] https://crrev.com/5836e40a4c5491a4b7351a8f0835f3a4d36c92d8/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/5836e40a4c5491a4b7351a8f0835f3a4d36c92d8/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 120 by bugdroid1@chromium.org, Nov 19 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2bd351a87b733b8b17f6507adb9b6d0829ca978f

commit 2bd351a87b733b8b17f6507adb9b6d0829ca978f
Author: glebl <glebl@chromium.org>
Date: Sat Nov 19 05:16:58 2016

Remove redundant 'derived constraint space' setters from NGConstraintSpace

Remove
  SetOverflowTriggersScrollbar
  SetFixedSize
  SetFragmentationType
  SetIsNewFormattingContext
  SetSize
  Size
from NGConstraintSpace. Use NGConstraintSpaceBuilder instead.

BUG=635619

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

[modify] https://crrev.com/2bd351a87b733b8b17f6507adb9b6d0829ca978f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/2bd351a87b733b8b17f6507adb9b6d0829ca978f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/2bd351a87b733b8b17f6507adb9b6d0829ca978f/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/2bd351a87b733b8b17f6507adb9b6d0829ca978f/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/2bd351a87b733b8b17f6507adb9b6d0829ca978f/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc

Project Member Comment 121 by bugdroid1@chromium.org, Nov 19 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fe55fbc67370abded2c79b78b2dad835345b0158

commit fe55fbc67370abded2c79b78b2dad835345b0158
Author: sadrul <sadrul@chromium.org>
Date: Sat Nov 19 06:00:51 2016

Revert of Remove redundant 'derived constraint space' setters from NGConstraintSpace (patchset #2 id:40001 of https://codereview.chromium.org/2515923002/ )

Reason for revert:
Causing wide-spread build failures, with errors like:

../../third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc:74:13: error: no member named 'Size' in 'blink::NGConstraintSpace'
      space.Size().ConvertToPhysical(space.WritingMode());
      ~~~~~ ^

Original issue's description:
> Remove redundant 'derived constraint space' setters from NGConstraintSpace
>
> Remove
>   SetOverflowTriggersScrollbar
>   SetFixedSize
>   SetFragmentationType
>   SetIsNewFormattingContext
>   SetSize
>   Size
> from NGConstraintSpace. Use NGConstraintSpaceBuilder instead.
>
> BUG=635619
>
> Committed: https://crrev.com/2bd351a87b733b8b17f6507adb9b6d0829ca978f
> Cr-Commit-Position: refs/heads/master@{#433404}

TBR=ikilpatrick@chromium.org,cbiesinger@chromium.org,glebl@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=635619

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

[modify] https://crrev.com/fe55fbc67370abded2c79b78b2dad835345b0158/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/fe55fbc67370abded2c79b78b2dad835345b0158/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/fe55fbc67370abded2c79b78b2dad835345b0158/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/fe55fbc67370abded2c79b78b2dad835345b0158/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/fe55fbc67370abded2c79b78b2dad835345b0158/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc

Project Member Comment 122 by bugdroid1@chromium.org, Nov 21 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/df041f08c62f111ea75b36a9ba9bb81260f15233

commit df041f08c62f111ea75b36a9ba9bb81260f15233
Author: glebl <glebl@chromium.org>
Date: Mon Nov 21 19:40:44 2016

Remove redundant 'derived constraint space' setters from NGConstraintSpace

this is the exact copy of http://crrev.com/2515923002 that was reviewed and submitted. Unfortunately it had to be reverted because of the collision with another LayoutNG patch at the commit time.

Remove
  SetOverflowTriggersScrollbar
  SetFixedSize
  SetFragmentationType
  SetIsNewFormattingContext
  SetSize
  Size
from NGConstraintSpace. Use NGConstraintSpaceBuilder instead.

BUG=635619

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

[modify] https://crrev.com/df041f08c62f111ea75b36a9ba9bb81260f15233/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc
[modify] https://crrev.com/df041f08c62f111ea75b36a9ba9bb81260f15233/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/df041f08c62f111ea75b36a9ba9bb81260f15233/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/df041f08c62f111ea75b36a9ba9bb81260f15233/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/df041f08c62f111ea75b36a9ba9bb81260f15233/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/df041f08c62f111ea75b36a9ba9bb81260f15233/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc

Project Member Comment 123 by bugdroid1@chromium.org, Nov 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/69dbc5fcb1586d6aa49f58863d6b26d24d336b15

commit 69dbc5fcb1586d6aa49f58863d6b26d24d336b15
Author: atotic <atotic@chromium.org>
Date: Tue Nov 22 19:46:55 2016

[LayoutNG]  Add out-of-flow descendants and offsets to NGPhysicalFragment

More prep work for abspos:
  Adds a list of out-of-flow descendants and their offsets to
  NGPhysicalFragment.

NGBlockLayoutAlgorithm needs to pass boxes it was unable to place
(out-of-flow) to its parent.
This will be done by storing unplaced boxes on the generated fragment.

BUG=635619

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

[modify] https://crrev.com/69dbc5fcb1586d6aa49f58863d6b26d24d336b15/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/69dbc5fcb1586d6aa49f58863d6b26d24d336b15/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/69dbc5fcb1586d6aa49f58863d6b26d24d336b15/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/69dbc5fcb1586d6aa49f58863d6b26d24d336b15/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/69dbc5fcb1586d6aa49f58863d6b26d24d336b15/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.cc
[modify] https://crrev.com/69dbc5fcb1586d6aa49f58863d6b26d24d336b15/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.h

Project Member Comment 124 by bugdroid1@chromium.org, Dec 1 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3d12834fa3981ef5f09b4c207c7cc17c56f5069f

commit 3d12834fa3981ef5f09b4c207c7cc17c56f5069f
Author: glebl <glebl@chromium.org>
Date: Thu Dec 01 21:09:08 2016

Deprecate NGPhysicalConstraintSpace

This patch deprecates NGPhysicalConstraintSpace and changes the LayoutNG code to use NGConstraintSpace and its builder everywhere instead.

List of changes:
1) NGConstraintSpaceBuilder::ToConstraintSpace returns NGConstraintSpace
2) NGPhysicalConstraintSpace is removed
3) Introduced NGExclusions to store the list of exclusions and last left/right floating exclusions.
4) NGConstraintSpace constructor is moved to private, so NGConstraintSpace can be only created via its builder.
5) Switching between inline/block happens in NGConstraintSpaceBuilder::ToConstraintSpace
6) Exclusions is shared with shared_ptr. A new exclusions list is created if there is no parent_space or when a new FC is established.

BUG=635619

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

[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[delete] https://crrev.com/9f4dfb5d16885bf0189cdf21775a8095d0defa02/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.cc
[delete] https://crrev.com/9f4dfb5d16885bf0189cdf21775a8095d0defa02/third_party/WebKit/Source/core/layout/ng/ng_physical_constraint_space.h
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/core/layout/ng/ng_units.h
[modify] https://crrev.com/3d12834fa3981ef5f09b4c207c7cc17c56f5069f/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member Comment 125 by bugdroid1@chromium.org, Dec 3 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e970904c78038db4d51fd4f911d08c40d9c59030

commit e970904c78038db4d51fd4f911d08c40d9c59030
Author: atotic <atotic@chromium.org>
Date: Sat Dec 03 02:51:30 2016

Implement collection of out-of-flow descendants

Out-of-flow descendants need to know what their static position would
have been. This is because abspos spec defaults to static position if
TLBL are not specified.

Oof descendant's dimensions are not known during propagation, only
it's logical top/left offset. The offset is propagated as NGCorner,
which is a PhysicalOffset + vertex location (topLeft, bottomLeft, etc)

Next step will be positioning of oof descendants.

BUG=635619

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

[modify] https://crrev.com/e970904c78038db4d51fd4f911d08c40d9c59030/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/e970904c78038db4d51fd4f911d08c40d9c59030/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/e970904c78038db4d51fd4f911d08c40d9c59030/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/e970904c78038db4d51fd4f911d08c40d9c59030/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/e970904c78038db4d51fd4f911d08c40d9c59030/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/e970904c78038db4d51fd4f911d08c40d9c59030/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/e970904c78038db4d51fd4f911d08c40d9c59030/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/e970904c78038db4d51fd4f911d08c40d9c59030/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 126 by bugdroid1@chromium.org, Dec 6 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bec09e64258ed346ac17bf741595275c3778087d

commit bec09e64258ed346ac17bf741595275c3778087d
Author: atotic <atotic@chromium.org>
Date: Tue Dec 06 01:04:21 2016

Move oof-descendants to NGPhysicalFragmentBase

As discussed in CR https://codereview.chromium.org/2540653003

As ng_text_fragments can also have oof descendants, oof descendants
should move to NGPhysicalFragmentBase

BUG=635619

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

[modify] https://crrev.com/bec09e64258ed346ac17bf741595275c3778087d/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/bec09e64258ed346ac17bf741595275c3778087d/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/bec09e64258ed346ac17bf741595275c3778087d/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/bec09e64258ed346ac17bf741595275c3778087d/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.cc
[modify] https://crrev.com/bec09e64258ed346ac17bf741595275c3778087d/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.h
[modify] https://crrev.com/bec09e64258ed346ac17bf741595275c3778087d/third_party/WebKit/Source/core/layout/ng/ng_physical_text_fragment.h
[modify] https://crrev.com/bec09e64258ed346ac17bf741595275c3778087d/third_party/WebKit/Source/core/layout/ng/ng_text_fragment.h

Project Member Comment 127 by bugdroid1@chromium.org, Dec 9 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/daaaf8661aa98f3f3eaa69a30816c2fae4f32704

commit daaaf8661aa98f3f3eaa69a30816c2fae4f32704
Author: atotic <atotic@chromium.org>
Date: Fri Dec 09 23:20:15 2016

Primary fix: Make AlgorithmForInputNode use container constraint space insted of child space.

Secondary: This change causes constraint space to not be const

Also, minor bug fixes by Ian to make tests pass.

BUG=635619

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

[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h
[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/ng_layout_coordinator.cc
[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/ng_layout_coordinator.h
[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/daaaf8661aa98f3f3eaa69a30816c2fae4f32704/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h

Project Member Comment 128 by bugdroid1@chromium.org, Dec 14 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c57031df82a809ebb6899d46c73b8f97f58980ff

commit c57031df82a809ebb6899d46c73b8f97f58980ff
Author: atotic <atotic@chromium.org>
Date: Wed Dec 14 00:28:37 2016

Legacy out-of-flow descendant propagation

Small part of my big patch: https://codereview.chromium.org/2568743005

BUG=635619

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

[modify] https://crrev.com/c57031df82a809ebb6899d46c73b8f97f58980ff/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/c57031df82a809ebb6899d46c73b8f97f58980ff/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/c57031df82a809ebb6899d46c73b8f97f58980ff/third_party/WebKit/Source/core/layout/ng/ng_block_node.h

Project Member Comment 129 by bugdroid1@chromium.org, Dec 14 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2ac84260d9bd99d9e0f44616fbe2ad86ddbffe7e

commit 2ac84260d9bd99d9e0f44616fbe2ad86ddbffe7e
Author: atotic <atotic@chromium.org>
Date: Wed Dec 14 01:13:19 2016

Add StaticPosition to ComputeVertical/Horizontal

Static position part of https://codereview.chromium.org/2568743005

BUG=635619

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

[modify] https://crrev.com/2ac84260d9bd99d9e0f44616fbe2ad86ddbffe7e/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc
[modify] https://crrev.com/2ac84260d9bd99d9e0f44616fbe2ad86ddbffe7e/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.h
[modify] https://crrev.com/2ac84260d9bd99d9e0f44616fbe2ad86ddbffe7e/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/2ac84260d9bd99d9e0f44616fbe2ad86ddbffe7e/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 130 by bugdroid1@chromium.org, Dec 17 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c3d0d04110e4a51acf4749507a42df8d18fc3022

commit c3d0d04110e4a51acf4749507a42df8d18fc3022
Author: glebl <glebl@chromium.org>
Date: Sat Dec 17 21:50:06 2016

Remove obsolete NGConstraintSpace::ChildSpace

After http://crrev.com/2562703003 NGConstraintSpace::ChildSpace became obsolete. Therefore this patch removes it.

BUG=635619

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

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

Project Member Comment 131 by bugdroid1@chromium.org, Dec 21 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/525fb507eb8c97d6b7c05afd17f2e6e9a721f50c

commit 525fb507eb8c97d6b7c05afd17f2e6e9a721f50c
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Dec 21 15:20:17 2016

[layoutng] Add a function to compute the min- and max-content contribution

This will be used inside of ComputeMinAndMaxContentSizes for computing the
child's contribution to the parent's min and max content size.

R=ikilpatrick@chromium.org
BUG=635619

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

[modify] https://crrev.com/525fb507eb8c97d6b7c05afd17f2e6e9a721f50c/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/525fb507eb8c97d6b7c05afd17f2e6e9a721f50c/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/525fb507eb8c97d6b7c05afd17f2e6e9a721f50c/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/525fb507eb8c97d6b7c05afd17f2e6e9a721f50c/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/525fb507eb8c97d6b7c05afd17f2e6e9a721f50c/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 132 by bugdroid1@chromium.org, Dec 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/aad3ca9d2bc90049564e97e956cc5ebbf9e8159b

commit aad3ca9d2bc90049564e97e956cc5ebbf9e8159b
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Dec 22 05:10:35 2016

[layoutng] Add a shrink-to-fit flag to the constraint space

This is useful for a few things:
- A way to communicate from the layout algorithm to ng_length_utils that we
  should treat auto as shrink-to-fit. There's no good other way to do this --
  ng_length_utils gets the logicalWidth() property directly and needs to know
  to treat it specially.
  Conversely I did not want to encode this knowledge inside of length utils
  because that gets complicated fast and puts special knowledge in a single
  place instead of distributing it to caller layout algorithms which are a
  much more natural spot.
- It allows a parent layout algorithm to tell a child box that it should shrink
  to fit even when it normally wouldn't, e.g. for flex items.

This is essentially a companion change to
https://codereview.chromium.org/2583033004/ -- with both these changes we
should correctly size inline-blocks and floats.

R=ikilpatrick@chromium.org
BUG=635619

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

[modify] https://crrev.com/aad3ca9d2bc90049564e97e956cc5ebbf9e8159b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/aad3ca9d2bc90049564e97e956cc5ebbf9e8159b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/aad3ca9d2bc90049564e97e956cc5ebbf9e8159b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/aad3ca9d2bc90049564e97e956cc5ebbf9e8159b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/aad3ca9d2bc90049564e97e956cc5ebbf9e8159b/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/aad3ca9d2bc90049564e97e956cc5ebbf9e8159b/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/aad3ca9d2bc90049564e97e956cc5ebbf9e8159b/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h

Project Member Comment 133 by bugdroid1@chromium.org, Dec 22 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/372351b102c692f8e35495c9dd4fce17b445aa12

commit 372351b102c692f8e35495c9dd4fce17b445aa12
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Dec 22 17:39:33 2016

[layoutng] Implement support for width: {min,max,fit}-content

This also implements shrink-to-fit for inline-block and floats,
which is now a one-line change.

BUG=635619
R=ikilpatrick@chromium.org

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

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

Project Member Comment 134 by bugdroid1@chromium.org, Dec 29 2016
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b235a3a7becc58e7f82760c5ee5da04f767ecbd8

commit b235a3a7becc58e7f82760c5ee5da04f767ecbd8
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Dec 29 19:03:38 2016

[layoutng] Better abspos support in legacy interop

In legacy layout, abspos differs from regular blocks in that abspos blocks
position themselves in their own layout, instead of getting positioned by
their parent. So it we are a positioned block in a legacy-layout containing
block, we have to emulate this positioning, which is what this change does.

Fixes this testcase:
<div style="height: 200px; background: yellow; position: relative;">
  XXX
  <div style="position: absolute; bottom: 0;">
    <div>Bottom</div>
  </div>
</div>

R=atotic@chromium.org,ikilpatrick@chromium.org
BUG=635619

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

[modify] https://crrev.com/b235a3a7becc58e7f82760c5ee5da04f767ecbd8/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc

Project Member Comment 135 by bugdroid1@chromium.org, Jan 4 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c31508114a74d26be7dd38bd08a047d1533f34df

commit c31508114a74d26be7dd38bd08a047d1533f34df
Author: atotic <atotic@chromium.org>
Date: Wed Jan 04 00:44:28 2017

Negative margin lengths are legal

Fix for cbiesinger comment:
https://codereview.chromium.org/2568743005#msg16

Tnx to ikilpatrick for making me put these asserts for all code paths,
this bug got caught early.

BUG=635619

[ng_negmargin]

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

[modify] https://crrev.com/c31508114a74d26be7dd38bd08a047d1533f34df/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 136 by bugdroid1@chromium.org, Jan 4 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a572b1d7a0042ab8974e4cd8e7873200446ccc6b

commit a572b1d7a0042ab8974e4cd8e7873200446ccc6b
Author: atotic <atotic@chromium.org>
Date: Wed Jan 04 09:15:09 2017

Place the out of flow positioned blocks.

Connects ng_block_algorithm with ng_absolute_utils. block_algorithm
collects all the oof blocks, and positions them using
ng_out_of_flow_layout_part.

Future work:
1) use ResolveInline/Block Length to compute width/height inside
ng_absolute_utils. This is needed to properly resolve MinContent/MaxContent
 lengths.

2) Investigate what happens when out_of_flow blocks cross the old/new layout
boundary. There might be cases we are not handling.

3?) Unify ComputeAbsoluteHorizontal and ComputeAbsoluteVertical.
They are almost the same function (Ian would like this).

BUG=635619 [ng_place]

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

[modify] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[add] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[add] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h
[modify] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/a572b1d7a0042ab8974e4cd8e7873200446ccc6b/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 137 by bugdroid1@chromium.org, Jan 5 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a918c03eaaf3670312aae46b812ffa16012ad338

commit a918c03eaaf3670312aae46b812ffa16012ad338
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Jan 05 18:47:49 2017

[layoutng] Make RunOldLayout respect IsFixedSize

If IsFixedSize is true for a dimension, sets the override size
accordingly, matching the code in ng_length_utils.

Also adds a comment to ng_constraint_space.h for how this works
(could've sworn that we already had such a comment)

R=eae@chromium.org,atotic@chromium.org
BUG=635619

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

[modify] https://crrev.com/a918c03eaaf3670312aae46b812ffa16012ad338/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/a918c03eaaf3670312aae46b812ffa16012ad338/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h

Project Member Comment 138 by bugdroid1@chromium.org, Jan 6 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2b91b28e0b5fcf099eba2e5b804cd82047c79642

commit 2b91b28e0b5fcf099eba2e5b804cd82047c79642
Author: atotic <atotic@chromium.org>
Date: Fri Jan 06 01:51:03 2017

Renames

NGPhysicalFragmentBase => NGPhysicalFragment
NGPhysicalFragment => NGPhysicalBoxFragment
NGFragmentBase => NGFragment
NGFragment => NGBoxFragment

Suggested by Morten.
Thanks to Eclipse for refactoring tools.

BUG=635619

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

[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_block_node_test.cc
[add] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.cc
[add] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[delete] https://crrev.com/bfb349df416fa51bfdda643a08e42e2ba1527fe1/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.cc
[delete] https://crrev.com/bfb349df416fa51bfdda643a08e42e2ba1527fe1/third_party/WebKit/Source/core/layout/ng/ng_fragment_base.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_layout_coordinator.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_layout_coordinator.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_legacy_block_layout_algorithm.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_legacy_block_layout_algorithm.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_line_builder.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h
[add] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[add] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[delete] https://crrev.com/bfb349df416fa51bfdda643a08e42e2ba1527fe1/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.cc
[delete] https://crrev.com/bfb349df416fa51bfdda643a08e42e2ba1527fe1/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment_base.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_physical_text_fragment.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_text_fragment.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.cc
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.h
[modify] https://crrev.com/2b91b28e0b5fcf099eba2e5b804cd82047c79642/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member Comment 139 by bugdroid1@chromium.org, Jan 6 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/49b2b8a8727853391ce1f38de8044cfd4678ed1f

commit 49b2b8a8727853391ce1f38de8044cfd4678ed1f
Author: atotic <atotic@chromium.org>
Date: Fri Jan 06 05:28:38 2017

Fixes calculation of abspos style properties:
left/padding/width/height...
Replaced NGSizeIndefinite with Optional<LayoutUnit>

Fixed a couple of minor bugs where AvailableSize was incorrect.

Passing ~30 more tests.

BUG=635619

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

[modify] https://crrev.com/49b2b8a8727853391ce1f38de8044cfd4678ed1f/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/49b2b8a8727853391ce1f38de8044cfd4678ed1f/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc
[modify] https://crrev.com/49b2b8a8727853391ce1f38de8044cfd4678ed1f/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.h
[modify] https://crrev.com/49b2b8a8727853391ce1f38de8044cfd4678ed1f/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/49b2b8a8727853391ce1f38de8044cfd4678ed1f/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/49b2b8a8727853391ce1f38de8044cfd4678ed1f/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h

Project Member Comment 140 by bugdroid1@chromium.org, Jan 10 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d8a66165955cb54927f24e7ea53591a82177a99

commit 2d8a66165955cb54927f24e7ea53591a82177a99
Author: atotic <atotic@chromium.org>
Date: Tue Jan 10 23:34:51 2017

Fix incorrect margin computation

This bug caused LayoutTest to fail:
virtual/layout_ng/css2.1/20110323/absolute-replaced-width-055.htm

BUG=635619

[ng_bug_margin_top]

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

[modify] https://crrev.com/2d8a66165955cb54927f24e7ea53591a82177a99/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc

Project Member Comment 141 by bugdroid1@chromium.org, Jan 10 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/67e0a1510f8a824b0e07c61484bc55c28c2f6c86

commit 67e0a1510f8a824b0e07c61484bc55c28c2f6c86
Author: atotic <atotic@chromium.org>
Date: Tue Jan 10 23:39:23 2017

Fix wrong percent_resolution_size inside ConstraintSpace::CreateFromLayoutObject.
This caused RunOldLayout to use wrong PercentageResolutionSize

<main style="width:500px;height:150px;position:relative;border: solid black">
  <div style="position:absolute;top:25%;width:50%;background-color:yellow;">hi</div>
</main>

This used to display at 1/2 width in NGLayout.

BUG=635619

[ng_constraint_width]

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

[modify] https://crrev.com/67e0a1510f8a824b0e07c61484bc55c28c2f6c86/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc

Project Member Comment 142 by bugdroid1@chromium.org, Jan 11 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d25e92003589f50192f951c654dc7ee98bad15c

commit 6d25e92003589f50192f951c654dc7ee98bad15c
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Jan 11 23:12:45 2017

[layoutng] Slightly simplify some code

This is my review comment from https://codereview.chromium.org/2616093004/

R=atotic@chromium.org
BUG=635619

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

[modify] https://crrev.com/6d25e92003589f50192f951c654dc7ee98bad15c/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc

Project Member Comment 143 by bugdroid1@chromium.org, Jan 11 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/513f1f02c5c928367006c600cd1098f6315654ca

commit 513f1f02c5c928367006c600cd1098f6315654ca
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Jan 11 23:44:10 2017

[layoutng] Use the override width even when we're not a flex item

(And also use it for positioned boxes)

We want to use this for layoutng/legacy interop. For legacy layout,
there should be no change in behavior because flexbox is currently
the only caller of this function:
https://cs.chromium.org/search/?q=setOverrideLogicalContentWidth&sq=package:chromium&type=cs

Interestingly, the height version did not have this limitation already.

This patch also deleted an outdated FIXME comment.

R=atotic@chromium.org,eae@chromium.org
BUG=635619

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

[modify] https://crrev.com/513f1f02c5c928367006c600cd1098f6315654ca/third_party/WebKit/Source/core/layout/LayoutBox.cpp

Project Member Comment 144 by bugdroid1@chromium.org, Jan 13 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b7f961697115ebfa0dc4eb98a98ff0ab3d1c4a8

commit 8b7f961697115ebfa0dc4eb98a98ff0ab3d1c4a8
Author: atotic <atotic@chromium.org>
Date: Fri Jan 13 00:47:45 2017

[layoutng] Fix extra margin space computation

The Optional<> rewrite reversed the sign on extra margin space.

Also updated test expectations. Down to 165 failed from 207

BUG=635619

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

[modify] https://crrev.com/8b7f961697115ebfa0dc4eb98a98ff0ab3d1c4a8/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/8b7f961697115ebfa0dc4eb98a98ff0ab3d1c4a8/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc

Project Member Comment 145 by bugdroid1@chromium.org, Jan 19 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/846a1b9762d89d23f293b0492df433e2239f71f5

commit 846a1b9762d89d23f293b0492df433e2239f71f5
Author: atotic <atotic@chromium.org>
Date: Thu Jan 19 00:58:40 2017

Fixed position with left:auto was broken because element's static position
was not propagated to old layout.

computeLogicalWidth(computedValues) eventually uses
layer()->getStaticInlinePosition
for positioning if left or top are not set.

We were not saving this value. I fixed it by saving the value inside the builder.
The reason for using builder is code reuse among different algorithms.

The fix makes 3 more tests pass.

Example:

<p>Yo</p>
<div id="div1" style="position:fixed:width:9px;height:9px;background-color:yellow" ></div>

BUG=635619
[ng_save_static]

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

[modify] https://crrev.com/846a1b9762d89d23f293b0492df433e2239f71f5/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/846a1b9762d89d23f293b0492df433e2239f71f5/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/846a1b9762d89d23f293b0492df433e2239f71f5/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/846a1b9762d89d23f293b0492df433e2239f71f5/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc

Project Member Comment 146 by bugdroid1@chromium.org, Jan 19 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3c1b4a7b6e20faedb8ae1c069796a3651bdda746

commit 3c1b4a7b6e20faedb8ae1c069796a3651bdda746
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jan 19 02:43:15 2017

[LayoutNG] Remove the state machine from ng_out_of_flow_layout_part.

This is part of removing the resumable layout code from LayoutNG.

This also fixes a bug where node_space_ wasn't getting reset at the start of Layout().

BUG=635619

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

[modify] https://crrev.com/3c1b4a7b6e20faedb8ae1c069796a3651bdda746/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc
[modify] https://crrev.com/3c1b4a7b6e20faedb8ae1c069796a3651bdda746/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.h
[modify] https://crrev.com/3c1b4a7b6e20faedb8ae1c069796a3651bdda746/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/3c1b4a7b6e20faedb8ae1c069796a3651bdda746/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/3c1b4a7b6e20faedb8ae1c069796a3651bdda746/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/3c1b4a7b6e20faedb8ae1c069796a3651bdda746/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/3c1b4a7b6e20faedb8ae1c069796a3651bdda746/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/3c1b4a7b6e20faedb8ae1c069796a3651bdda746/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h

Project Member Comment 147 by bugdroid1@chromium.org, Jan 19 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8e9dde1be1c2411de2a8d7a7b7c331d46c324a3f

commit 8e9dde1be1c2411de2a8d7a7b7c331d46c324a3f
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jan 19 05:16:55 2017

[LayoutNG] Remove state machine from min/max content method.

I'll remove the non-"Sync" version of the methods on NGBlockNode in a
separate patch.

BUG=635619

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

[modify] https://crrev.com/8e9dde1be1c2411de2a8d7a7b7c331d46c324a3f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/8e9dde1be1c2411de2a8d7a7b7c331d46c324a3f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/8e9dde1be1c2411de2a8d7a7b7c331d46c324a3f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/8e9dde1be1c2411de2a8d7a7b7c331d46c324a3f/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/8e9dde1be1c2411de2a8d7a7b7c331d46c324a3f/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/8e9dde1be1c2411de2a8d7a7b7c331d46c324a3f/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h

Project Member Comment 148 by bugdroid1@chromium.org, Jan 19 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/01fde50580297be95d015b38d99e6b6d44297fb4

commit 01fde50580297be95d015b38d99e6b6d44297fb4
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jan 19 20:22:48 2017

[LayoutNG] Initial pass of removing the state machine from ng_block_layout_algorithm.

If followup patches I'll refactor the code to be more readable, this
just removes the state machine in a simple way.

BUG=635619

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

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

Project Member Comment 149 by bugdroid1@chromium.org, Jan 20 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ff9ccb9534870244065db87766a709a23647ff6f

commit ff9ccb9534870244065db87766a709a23647ff6f
Author: glebl <glebl@chromium.org>
Date: Fri Jan 20 05:48:36 2017

Make NGBlockLayoutAlgorithmTest inherit RenderingTest

With RenderingTest it's possible to separate HTML test representation and unittest validation logic.

BUG=635619

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

[modify] https://crrev.com/ff9ccb9534870244065db87766a709a23647ff6f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc

Project Member Comment 150 by bugdroid1@chromium.org, Jan 20 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b5a30a4313c916119d0b137d3c2e0c53a2021a3b

commit b5a30a4313c916119d0b137d3c2e0c53a2021a3b
Author: atotic <atotic@chromium.org>
Date: Fri Jan 20 23:11:43 2017

Constrain width/height to minmax values

Width and height were not being constrained to min/max values.

Adds a ConstrainByMinMax to ng_lenght_utils

This makes another ~10 tests pass.

BUG=635619

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

[modify] https://crrev.com/b5a30a4313c916119d0b137d3c2e0c53a2021a3b/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/b5a30a4313c916119d0b137d3c2e0c53a2021a3b/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc
[modify] https://crrev.com/b5a30a4313c916119d0b137d3c2e0c53a2021a3b/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/b5a30a4313c916119d0b137d3c2e0c53a2021a3b/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/b5a30a4313c916119d0b137d3c2e0c53a2021a3b/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h

Project Member Comment 151 by bugdroid1@chromium.org, Jan 21 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e100229f582a151b27bfe1d1bd85942b5b7d05e8

commit e100229f582a151b27bfe1d1bd85942b5b7d05e8
Author: atotic <atotic@chromium.org>
Date: Sat Jan 21 01:36:48 2017

Fix google.com rendering: UpdatePosition for descendants

I had to touch LayoutOutOfFlowChild, so I also ripped
out old state-related stuff.

BUG=635619

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

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

Project Member Comment 152 by bugdroid1@chromium.org, Jan 21 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0e7df9ebd6385e1f02a328f864c8bff48eb5cbeb

commit 0e7df9ebd6385e1f02a328f864c8bff48eb5cbeb
Author: atotic <atotic@chromium.org>
Date: Sat Jan 21 03:41:34 2017

Fix how we constrain width/height by min/max

According to the spec:
- if min/max change the computed length, the algorithm should run
again with length being the clamped length value.

This also fixes a single failing test.

BUG=635619

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

[modify] https://crrev.com/0e7df9ebd6385e1f02a328f864c8bff48eb5cbeb/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/0e7df9ebd6385e1f02a328f864c8bff48eb5cbeb/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc

Project Member Comment 153 by bugdroid1@chromium.org, Jan 21 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0df262f32f773d7655aba8b5990ffbc2d04cc622

commit 0df262f32f773d7655aba8b5990ffbc2d04cc622
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Sat Jan 21 20:04:46 2017

[LayoutNG] Remove the ng_layout_coordinator and temporary LayoutSync method.

Algorithms now just call the Layout() method on the NGInputNode which is
responsible for selecting an algorithm to produce a fragment.

BUG=635619

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

[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.h
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[delete] https://crrev.com/ac3b36a8e91405bedccaa90e221b784c26cbadb5/third_party/WebKit/Source/core/layout/ng/ng_layout_coordinator.cc
[delete] https://crrev.com/ac3b36a8e91405bedccaa90e221b784c26cbadb5/third_party/WebKit/Source/core/layout/ng/ng_layout_coordinator.h
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_legacy_block_layout_algorithm.cc
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_legacy_block_layout_algorithm.h
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.cc
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.h
[modify] https://crrev.com/0df262f32f773d7655aba8b5990ffbc2d04cc622/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member Comment 154 by bugdroid1@chromium.org, Jan 23 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/38e16a89fed5f85376cbb78ade464cc4960d433e

commit 38e16a89fed5f85376cbb78ade464cc4960d433e
Author: glebl <glebl@chromium.org>
Date: Mon Jan 23 21:16:44 2017

Introduce NGFloatingObject

NGFloatingObject holds all information needed to position floats in
old/new layout tree.

If a float can not determine its position in space (for example because
of margin collapsing case) it is added to the fragment's
UnpositionedFloats list. When we reach the fragment that can resolve
its position in space all pending floats will be positioned and added
to the PositionedFloats list. PositionedFloats list is used to
create/place  FloatingObject in old layout tree.

BUG=635619

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

[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[add] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/38e16a89fed5f85376cbb78ade464cc4960d433e/third_party/WebKit/Source/core/layout/ng/ng_physical_text_fragment.h

Project Member Comment 155 by bugdroid1@chromium.org, Jan 24 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9a539bd604e4a8c6aed45356afc1cb1df3b35c37

commit 9a539bd604e4a8c6aed45356afc1cb1df3b35c37
Author: atotic <atotic@chromium.org>
Date: Tue Jan 24 01:46:18 2017

Cleanup: remove state variables from inline_algorithm

BUG=635619

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

[modify] https://crrev.com/9a539bd604e4a8c6aed45356afc1cb1df3b35c37/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/9a539bd604e4a8c6aed45356afc1cb1df3b35c37/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.h

Project Member Comment 156 by bugdroid1@chromium.org, Jan 24 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/babdd037f833053d63076cdc01143d76977db23d

commit babdd037f833053d63076cdc01143d76977db23d
Author: glebl <glebl@chromium.org>
Date: Tue Jan 24 12:27:38 2017

Deprecate the currently used NGMarginStrut in favor of the new one.

This will deprecate NGMarginStrut and introduce the new NGMarginStrut with new interface.
See http://crrev.com/2597823004 for more details about how it will be used.

BUG=635619

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

[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.cc
[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.h
[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/babdd037f833053d63076cdc01143d76977db23d/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 157 by bugdroid1@chromium.org, Jan 25 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/59c1ac58a65bb815893621feb68fe228e051a2b4

commit 59c1ac58a65bb815893621feb68fe228e051a2b4
Author: glebl <glebl@chromium.org>
Date: Wed Jan 25 01:28:20 2017

Rewrite LayoutNG margin collapsing/floats unit tests

This patch rewrites PositionFloatFragments, CollapsingMarginsCase2WithFloats,
CollapsingMarginsCase1WithFloats and PositionFloatInsideEmptyBlocks(new).

Also it makes NGBlockLayoutAlgorithmTest to be based on RenderingTest. That
allows to use setBodyInnerHTML to set HTML representation of tests and enables
unittests to access old layout objects like FloatingObjects etc.

The tests that are being changed here are temporarily marked as DISABLED.
That's because the old tests are not fully correct. For the new float/margins
collapsing algorithm these new tests will set correct expectations and will
be enabled once the new code checked in.

BUG=635619

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

[modify] https://crrev.com/59c1ac58a65bb815893621feb68fe228e051a2b4/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/59c1ac58a65bb815893621feb68fe228e051a2b4/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 158 by bugdroid1@chromium.org, Jan 25 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f855b40902acc2b89ae360cac0eadd410bffd6a5

commit f855b40902acc2b89ae360cac0eadd410bffd6a5
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Jan 25 03:43:40 2017

[LayoutNG] Add LayoutObject pointer to each NGPhysicalFragment.

This pointer is for:
 1) Copying back data to the legacy layout tree inside NGBlockNode.
 2) When the legacy layout tree is using fragments for geometry
    information this will be used while walking the fragment tree to
    access the layout object which generated the fragment.

BUG=635619

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

[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.h
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/core/layout/ng/ng_physical_text_fragment.h
[modify] https://crrev.com/f855b40902acc2b89ae360cac0eadd410bffd6a5/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member Comment 159 by bugdroid1@chromium.org, Jan 25 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f2e4af61a8a9c876d4eaeb82bdb5840af5da6ff7

commit f2e4af61a8a9c876d4eaeb82bdb5840af5da6ff7
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Jan 25 18:18:56 2017

[LayoutNG] Pull out of flow candidate loop into out of flow layout part.

Now that we don't have the state machine its easier to reason about
here.

BUG=635619

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

[modify] https://crrev.com/f2e4af61a8a9c876d4eaeb82bdb5840af5da6ff7/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.cc
[modify] https://crrev.com/f2e4af61a8a9c876d4eaeb82bdb5840af5da6ff7/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils.h
[modify] https://crrev.com/f2e4af61a8a9c876d4eaeb82bdb5840af5da6ff7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/f2e4af61a8a9c876d4eaeb82bdb5840af5da6ff7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/f2e4af61a8a9c876d4eaeb82bdb5840af5da6ff7/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/f2e4af61a8a9c876d4eaeb82bdb5840af5da6ff7/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/f2e4af61a8a9c876d4eaeb82bdb5840af5da6ff7/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h

Project Member Comment 160 by bugdroid1@chromium.org, Jan 26 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f09779466558e6e2ce51f9fa74ec00c10cdc8c6

commit 2f09779466558e6e2ce51f9fa74ec00c10cdc8c6
Author: dgrogan <dgrogan@chromium.org>
Date: Thu Jan 26 20:10:43 2017

[LayoutNG] Return MinAndMaxContentSizes by value, step 1

It's small enough that we probably don't need to worry about copying it.

ComputeMinAndMaxContentSizesSync was a small convenience wrapper that
did this; we don't need it anymore.

Step 2 will tackle NGBlockLayoutAlgorithm::ComputeMinAndMaxContentSizes

BUG=635619

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

[modify] https://crrev.com/2f09779466558e6e2ce51f9fa74ec00c10cdc8c6/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/2f09779466558e6e2ce51f9fa74ec00c10cdc8c6/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/2f09779466558e6e2ce51f9fa74ec00c10cdc8c6/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/2f09779466558e6e2ce51f9fa74ec00c10cdc8c6/third_party/WebKit/Source/core/layout/ng/ng_block_node_test.cc
[modify] https://crrev.com/2f09779466558e6e2ce51f9fa74ec00c10cdc8c6/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc

Project Member Comment 161 by bugdroid1@chromium.org, Jan 30 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8772b878183be72d544d3f9d0267b9255e1f1f98

commit 8772b878183be72d544d3f9d0267b9255e1f1f98
Author: glebl <glebl@chromium.org>
Date: Mon Jan 30 22:04:37 2017

Avoid double layout for writing mode roots if LayoutNG is enabled

In legacy code we perform a series of subtree layouts that can be
avoided in LayoutNG code.

This patch disables layoutOrthogonalWritingModeRoots if layoutNG is
enabled.

BUG=635619

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

[modify] https://crrev.com/8772b878183be72d544d3f9d0267b9255e1f1f98/third_party/WebKit/Source/core/frame/FrameView.cpp

Project Member Comment 162 by bugdroid1@chromium.org, Feb 1 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3be93b1595c5d1460e8cac47c78c1de2ff989908

commit 3be93b1595c5d1460e8cac47c78c1de2ff989908
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Feb 01 13:18:55 2017

[LayoutNG] Make NGBlockNode return a const style reference.

Remove the mutable style accessor.

BUG=635619

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

[modify] https://crrev.com/3be93b1595c5d1460e8cac47c78c1de2ff989908/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/3be93b1595c5d1460e8cac47c78c1de2ff989908/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/3be93b1595c5d1460e8cac47c78c1de2ff989908/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/3be93b1595c5d1460e8cac47c78c1de2ff989908/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/3be93b1595c5d1460e8cac47c78c1de2ff989908/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/3be93b1595c5d1460e8cac47c78c1de2ff989908/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc

Project Member Comment 163 by bugdroid1@chromium.org, Feb 1 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d1b7237e603d1993bdeb0eefed98002d433ba31f

commit d1b7237e603d1993bdeb0eefed98002d433ba31f
Author: cbiesinger <cbiesinger@chromium.org>
Date: Wed Feb 01 22:50:11 2017

[layoutng] Also add a DCHECK for the percentage resolution size

R=atotic@chromium.org,glebl@chromium.org
BUG=635619

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

[modify] https://crrev.com/d1b7237e603d1993bdeb0eefed98002d433ba31f/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc

Project Member Comment 164 by bugdroid1@chromium.org, Feb 2 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3a4d2a76410d5606a26578e0ae0be4bec5f32d04

commit 3a4d2a76410d5606a26578e0ae0be4bec5f32d04
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Feb 02 01:38:43 2017

[LayoutNG] Make NG algorithms non-oilpan.

This also deletes NGLegacyBlockLayoutAlgorithm which was left over from
having the coordinator and cleans up a bunch of un-used things in
NGLayoutAlgorithm.

BUG=635619

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

[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.h
[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[delete] https://crrev.com/3daa51cafe8f6adb1f308775f91274beb60154e2/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.cc
[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[delete] https://crrev.com/3daa51cafe8f6adb1f308775f91274beb60154e2/third_party/WebKit/Source/core/layout/ng/ng_legacy_block_layout_algorithm.cc
[delete] https://crrev.com/3daa51cafe8f6adb1f308775f91274beb60154e2/third_party/WebKit/Source/core/layout/ng/ng_legacy_block_layout_algorithm.h
[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.cc
[modify] https://crrev.com/3a4d2a76410d5606a26578e0ae0be4bec5f32d04/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.h

Project Member Comment 165 by bugdroid1@chromium.org, Feb 2 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/76de065c8a9efc8b7d9cf28c38c757c4bec47392

commit 76de065c8a9efc8b7d9cf28c38c757c4bec47392
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Feb 02 08:00:59 2017

[LayoutNG] Stack allocate NGLayoutOpportunityIterator.

BUG=635619

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

[modify] https://crrev.com/76de065c8a9efc8b7d9cf28c38c757c4bec47392/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/76de065c8a9efc8b7d9cf28c38c757c4bec47392/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/76de065c8a9efc8b7d9cf28c38c757c4bec47392/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/76de065c8a9efc8b7d9cf28c38c757c4bec47392/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/76de065c8a9efc8b7d9cf28c38c757c4bec47392/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/76de065c8a9efc8b7d9cf28c38c757c4bec47392/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h

Blocking: 687856
Project Member Comment 167 by bugdroid1@chromium.org, Feb 4 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e37073cf5dc5e7e0a770e967af8571d455cacfe4

commit e37073cf5dc5e7e0a770e967af8571d455cacfe4
Author: atotic <atotic@chromium.org>
Date: Sat Feb 04 00:42:03 2017

Fix: absolutely positioned block too wide in LegacyLayout

example:
<style type="text/css">
  div#green-overlapping-test
    {
      border-left: green solid 25px;
      border-right: green solid 75px;
      height: 100px;
      left: auto;
      position: absolute;
      right: auto;
      width: auto;
      writing-mode: horizontal-tb;
    }

     div#red-overlapped-reference
    {
      background-color: red;
      height: 100px;
      width: 100px;
    }

</style>
  <div id="green-overlapping-test"></div>
  <div id="red-overlapped-reference"></div>

cause:
Inside ng_block_layout_algorithm, we set initial inline length to
width of containing space.
inline_length comes from ResolveInlineLength.
As containing_space does not have ShrinkToFit flag, ResolveInlineLength defaults
to width of containing box.
I believe containing_space should have ShrinkToFit flag set.

This flag is set here:
 NGConstraintSpace::CreateFromLayoutObject
   .SetIsShrinkToFit(
          box.sizesLogicalWidthToFitContent(box.styleRef().logicalWidth()))

My guess is that sizesLogicalWidthToFitContent should return true for
out_of_flow blocks, but with old layout, one can never be sure.
I've ran the full LayoutTests suite, and it works with the patch.

BUG=635619

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

[modify] https://crrev.com/e37073cf5dc5e7e0a770e967af8571d455cacfe4/third_party/WebKit/Source/core/layout/LayoutBox.cpp

Project Member Comment 168 by bugdroid1@chromium.org, Feb 6 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c4ef48dc4fb378c5d83ceb81b4417d74317596ae

commit c4ef48dc4fb378c5d83ceb81b4417d74317596ae
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Mon Feb 06 05:37:52 2017

[LayoutNG] Convert physical fragments to being RefCounted.

A few changes in this patch:
NGPhysicalFragment becomes RefCounted.
NGFragment "views" becomes stack allocated.
  (also remove an unused param).
NGFragmentBuilder moves off oil-pan to used being unique_ptr
  (this one was done because the "build" step would have required
   conversion from oilpan to non-oilpan code).

BUG=635619

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

[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_line_builder.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_physical_text_fragment.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_text_fragment.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.cc
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.h
[modify] https://crrev.com/c4ef48dc4fb378c5d83ceb81b4417d74317596ae/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member Comment 169 by bugdroid1@chromium.org, Feb 6 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/51c8aa394d7b69454cc942e03b0dcfadb5358280

commit 51c8aa394d7b69454cc942e03b0dcfadb5358280
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Mon Feb 06 21:45:27 2017

[LayoutNG] Fix accidentally removed "private:".

Was accidentally removed: https://codereview.chromium.org/2655783006

:)

BUG=635619
TBR=glebl@chromium.org

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

[modify] https://crrev.com/51c8aa394d7b69454cc942e03b0dcfadb5358280/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h

Project Member Comment 170 by bugdroid1@chromium.org, Feb 7 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dc062b30eac5feb37dcdc824cdf114b2aa30d77e

commit dc062b30eac5feb37dcdc824cdf114b2aa30d77e
Author: atotic <atotic@chromium.org>
Date: Tue Feb 07 00:27:07 2017

Propagate fixed descendants of abs.

Bug: fixed descendants of absolute blocks were not getting positioned.
This fix was a TODO that fell off the radar.

Example:
<div id="rel" style="position:relative;">
  <div id="abs" style="position:absolute;top:100px;">
    <p>absolute</p>
    <div class="fix" style="position:fixed;background-color:gray;"><p>fixed</p></div>
  </div>
</div>

The loop inside NGOutOfFlowLayoutPart::Run had to be modified from
collection iterator to an array, because collections can't be modified
while iterating.

I've tried testing it in vertical-lr, but there are upstream bugs
that prevent this.

[ng_fixed_in_abs]

BUG=635619

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

[modify] https://crrev.com/dc062b30eac5feb37dcdc824cdf114b2aa30d77e/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/dc062b30eac5feb37dcdc824cdf114b2aa30d77e/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[add] https://crrev.com/dc062b30eac5feb37dcdc824cdf114b2aa30d77e/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc

Project Member Comment 171 by bugdroid1@chromium.org, Feb 7 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0465547bef7286daed606fb685178eecab58f246

commit 0465547bef7286daed606fb685178eecab58f246
Author: dgrogan <dgrogan@chromium.org>
Date: Tue Feb 07 01:48:08 2017

[LayoutNG] Return MinAndMaxContentSizes by value, step 2/2

NGLayoutAlgorithm::ComputeMinAndMaxContentSizes now returns
Optional<MinAndMaxContentSizes> instead of taking an out parameter and
returning bool for success/failure.

BUG=635619

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

[modify] https://crrev.com/0465547bef7286daed606fb685178eecab58f246/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/0465547bef7286daed606fb685178eecab58f246/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/0465547bef7286daed606fb685178eecab58f246/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/0465547bef7286daed606fb685178eecab58f246/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/0465547bef7286daed606fb685178eecab58f246/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/0465547bef7286daed606fb685178eecab58f246/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/0465547bef7286daed606fb685178eecab58f246/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h

Project Member Comment 172 by bugdroid1@chromium.org, Feb 7 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4db6b79aab37bf3c687e067126241ab615d5c645

commit 4db6b79aab37bf3c687e067126241ab615d5c645
Author: glebl <glebl@chromium.org>
Date: Tue Feb 07 15:27:22 2017

Fix incorrectly calculated size/position information for writing-modes

List of changes:
- Calculate margins before we switch writing modes for a child CS
- Collapse MarginStrut and update parent's BFC if we lay out the block
  that establishes a new formatting context.
- Rewrite NGBlockLayoutAlgorithmTest::CollapsingMarginsCase5 that
  verifies that we correctly collapses margins in different writing modes
- Set ShrinkToFit to child's CS if it's orthogonal to its parent.

BUG=635619

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

[modify] https://crrev.com/4db6b79aab37bf3c687e067126241ab615d5c645/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/4db6b79aab37bf3c687e067126241ab615d5c645/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/4db6b79aab37bf3c687e067126241ab615d5c645/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/4db6b79aab37bf3c687e067126241ab615d5c645/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/4db6b79aab37bf3c687e067126241ab615d5c645/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/4db6b79aab37bf3c687e067126241ab615d5c645/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/4db6b79aab37bf3c687e067126241ab615d5c645/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc

Project Member Comment 173 by bugdroid1@chromium.org, Feb 9 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/bbea7637c1d6adafff338cd00b0de80d7a97cf69

commit bbea7637c1d6adafff338cd00b0de80d7a97cf69
Author: glebl <glebl@chromium.org>
Date: Thu Feb 09 06:18:20 2017

Fragment that establishes new BFC knows it's BFC offset in parent space

List of changes:
- If a fragment establishes new BFC then we can collapse its margin and
  assume that it's BFC offset is known. We can't use
  fragment->BfcOffset() in this case because each BFC has it's own BFC
  coordinates.
- Revert lines that changed the usage of BFC offset to 'unified' offset
- s/CalculateRelativeOffset/CalculateLogicalOffset/g
- other minor clean up

BUG=635619
TESTS=NGBlockLayoutAlgorithmTest::CollapsingMarginsCase5

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

[modify] https://crrev.com/bbea7637c1d6adafff338cd00b0de80d7a97cf69/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/bbea7637c1d6adafff338cd00b0de80d7a97cf69/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/bbea7637c1d6adafff338cd00b0de80d7a97cf69/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/bbea7637c1d6adafff338cd00b0de80d7a97cf69/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/bbea7637c1d6adafff338cd00b0de80d7a97cf69/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/bbea7637c1d6adafff338cd00b0de80d7a97cf69/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc

Project Member Comment 174 by bugdroid1@chromium.org, Feb 10 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/57ac6dc1c5b8d3ffa431bc641a6ccab3200751d3

commit 57ac6dc1c5b8d3ffa431bc641a6ccab3200751d3
Author: glebl <glebl@chromium.org>
Date: Fri Feb 10 23:03:40 2017

Add left_offset to NGFloatingObject and set it on legacy FloatingObject

This patch adds the support of the next use case:
When a float are surrounded by a bunch of empty divs we attach it to the
next in-flow child that can determine its position in space. We need to
copy 2 offsets to the legacy tree:
1) Float's LayoutObject offset relative to its gunuine parent
2) Float's FloatingObject offset relative to its real parent so
   BlockFlowPainter can paint it correctly

List of changes:
- Add left_offset to NGFloatingObject. This will be set to
  FloatingObject
- Add parent_space to NGFloatingObject. This is used to calculate
  offset relative to the genuine parent.
- PositionFloat uses origin_point/from_offset with inline_offset
  that comes from float's and float's parent constraint spaces.
- Enable NGBlockLayoutAlgorithmTest::PositionFloatInsideEmptyBlocks

BUG=635619
TEST=NGBlockLayoutAlgorithmTest::PositionFloatInsideEmptyBlocks

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

[modify] https://crrev.com/57ac6dc1c5b8d3ffa431bc641a6ccab3200751d3/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/57ac6dc1c5b8d3ffa431bc641a6ccab3200751d3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/57ac6dc1c5b8d3ffa431bc641a6ccab3200751d3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/57ac6dc1c5b8d3ffa431bc641a6ccab3200751d3/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/57ac6dc1c5b8d3ffa431bc641a6ccab3200751d3/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h

Project Member Comment 175 by bugdroid1@chromium.org, Feb 11 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/decb261b5c91b2239df2409aac6edc0cb969faa4

commit decb261b5c91b2239df2409aac6edc0cb969faa4
Author: atotic <atotic@chromium.org>
Date: Sat Feb 11 00:33:51 2017

Comment static position

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

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

[modify] https://crrev.com/decb261b5c91b2239df2409aac6edc0cb969faa4/third_party/WebKit/Source/core/paint/PaintLayer.h

Project Member Comment 176 by bugdroid1@chromium.org, Feb 11 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/214a55c8dbf669d7d16e8693ffd93ae0d9d10182

commit 214a55c8dbf669d7d16e8693ffd93ae0d9d10182
Author: atotic <atotic@chromium.org>
Date: Sat Feb 11 01:29:15 2017

Use Initial Containing Block size for vertical

This patch fixes the vertical modes assert in ComputeInlineLength.

I used box.view()->viewportSizeForViewportUnits() for ICB size
per kojii's suggestion.

BUG=635619

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

[modify] https://crrev.com/214a55c8dbf669d7d16e8693ffd93ae0d9d10182/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/214a55c8dbf669d7d16e8693ffd93ae0d9d10182/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/214a55c8dbf669d7d16e8693ffd93ae0d9d10182/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/214a55c8dbf669d7d16e8693ffd93ae0d9d10182/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/214a55c8dbf669d7d16e8693ffd93ae0d9d10182/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[add] https://crrev.com/214a55c8dbf669d7d16e8693ffd93ae0d9d10182/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder_test.cc
[modify] https://crrev.com/214a55c8dbf669d7d16e8693ffd93ae0d9d10182/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/214a55c8dbf669d7d16e8693ffd93ae0d9d10182/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/214a55c8dbf669d7d16e8693ffd93ae0d9d10182/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 177 by bugdroid1@chromium.org, Feb 14 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b22faaaadbb08c37ceca6c55c9d5557966b85b21

commit b22faaaadbb08c37ceca6c55c9d5557966b85b21
Author: atotic <atotic@chromium.org>
Date: Tue Feb 14 00:06:37 2017

Change how NGConstraintSpaceBuilder specified destination space.

The way writing_mode for NGConstraintSpaceBuilder was set was
confusing. This change makes the API more explicit about how
output writing mode is set.

NGConstraintSpaceBuilder::writing_mode_ is eliminated
NGConstraintSpaceBuilder::SetWritingMode is eliminated

instead, writing mode becomes a parameter to:
NGConstraintSpaceBuilder::ToConstraintSpace(NGWritingMode output_mode)

BUG=635619

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

[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder_test.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/b22faaaadbb08c37ceca6c55c9d5557966b85b21/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member Comment 178 by bugdroid1@chromium.org, Feb 14 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2844c8518b8b8aaaa02a44b0ce5e3c3821cb72ed

commit 2844c8518b8b8aaaa02a44b0ce5e3c3821cb72ed
Author: glebl <glebl@chromium.org>
Date: Tue Feb 14 20:27:36 2017

Markdown instruction how to generate code coverage for LayoutNG

BUG=635619

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

[modify] https://crrev.com/2844c8518b8b8aaaa02a44b0ce5e3c3821cb72ed/third_party/WebKit/Source/core/layout/ng/README.md

Comment 179 by eco...@igalia.com, Feb 15 2017
Cc: eco...@igalia.com
Project Member Comment 180 by bugdroid1@chromium.org, Feb 15 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f9c746934fbb6e7205ef7ec0815957ccbc45e6b3

commit f9c746934fbb6e7205ef7ec0815957ccbc45e6b3
Author: glebl <glebl@chromium.org>
Date: Wed Feb 15 20:58:00 2017

Remove fixed width/height for containers with orthogonal children

Code clean up:
1) Remove fixed width/height for containers with orthogonal children
2) Use raw string literals for embedded HTML

BUG=635619

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

[modify] https://crrev.com/f9c746934fbb6e7205ef7ec0815957ccbc45e6b3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc

Project Member Comment 181 by bugdroid1@chromium.org, Feb 15 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f9c746934fbb6e7205ef7ec0815957ccbc45e6b3

commit f9c746934fbb6e7205ef7ec0815957ccbc45e6b3
Author: glebl <glebl@chromium.org>
Date: Wed Feb 15 20:58:00 2017

Remove fixed width/height for containers with orthogonal children

Code clean up:
1) Remove fixed width/height for containers with orthogonal children
2) Use raw string literals for embedded HTML

BUG=635619

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

[modify] https://crrev.com/f9c746934fbb6e7205ef7ec0815957ccbc45e6b3/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc

Project Member Comment 182 by bugdroid1@chromium.org, Feb 16 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d

commit a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Feb 16 00:45:14 2017

[LayoutNG] Make NGBlockLayoutAlgorithm accept a NGBlockNode.

Instead of the LayoutObject, Style, FirstChild tuple.

This is so that NGFragmentBuilder can access the node to construct a
break token correctly.

See prototype multi-col patch: crrev/2693193002.

BUG=635619

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

[modify] https://crrev.com/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
[modify] https://crrev.com/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc
[modify] https://crrev.com/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc
[modify] https://crrev.com/a4d7e99f9043c0268d57258bb6ef1a6e206b6b1d/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member Comment 183 by bugdroid1@chromium.org, Feb 16 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/283cef0d240cf6a118f605d396eee0fbee0278b7

commit 283cef0d240cf6a118f605d396eee0fbee0278b7
Author: atotic <atotic@chromium.org>
Date: Thu Feb 16 06:34:15 2017

Fix orthogonal mode legacy mismatch

Orthogonal styles currently assert inside legacy layout, because width is -1.
Ex:
<div style="writing-mode:vertical-rl; border:1px solid red;">
  <p style="writing-mode:horizontal-tb; border:1px solid blue;">Hello, world.</p>
</div>

These two routines did not handle orthogonal modes properly.

NGConstraintSpace::CreateFromLayoutObject
NGBlockNode::RunOldLayout

I am not sure if this fix is correct, it is my best guess. With the fix, assert
is avoided, but <p> is too tall. The constraint space used for layout looks correct,
bug might be something else.

Meta question: Should we bother with legacy orthogonal modes at all?
I've stumbled upon several other orthogonal mode bugs.

BUG=635619

[ng_orthogonal_legacy]

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

[modify] https://crrev.com/283cef0d240cf6a118f605d396eee0fbee0278b7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/283cef0d240cf6a118f605d396eee0fbee0278b7/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/283cef0d240cf6a118f605d396eee0fbee0278b7/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/283cef0d240cf6a118f605d396eee0fbee0278b7/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/283cef0d240cf6a118f605d396eee0fbee0278b7/third_party/WebKit/Source/core/layout/ng/ng_writing_mode.cc
[modify] https://crrev.com/283cef0d240cf6a118f605d396eee0fbee0278b7/third_party/WebKit/Source/core/layout/ng/ng_writing_mode.h

Project Member Comment 184 by bugdroid1@chromium.org, Feb 17 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4d81d1e61673e8e3f988fe8efaebf630308f8e85

commit 4d81d1e61673e8e3f988fe8efaebf630308f8e85
Author: glebl <glebl@chromium.org>
Date: Fri Feb 17 02:10:53 2017

[LayoutNG] Fix incorrectly positioned empty blocks inside of new BFC

List of changes:
- Reset BFC offset for blocks that establishes a new BFC
- Correctly calculate child's BFC offset if the parent's BFC offset is
  known but the child fragment doesn't know its BFC offset
  (for example when it's empty)
- Do not change content_size for empty blocks. Example:
  <div style="overflow:hidden">
    <div style="margin-top: 8px"></div>
    <div style="margin-top: 10px"></div>
  </div>
- Do not set MarginStrut to Float Constraint spaces
- New unit test NGBlockLayoutAlgorithmTest::PositionEmptyBlocksInNewBfc
- Update legacy floating objects for each fragment's instead of for
  fragment's children only.

BUG=635619
TEST=NGBlockLayoutAlgorithmTest::PositionEmptyBlocksInNewBfc

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

[modify] https://crrev.com/4d81d1e61673e8e3f988fe8efaebf630308f8e85/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/4d81d1e61673e8e3f988fe8efaebf630308f8e85/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/4d81d1e61673e8e3f988fe8efaebf630308f8e85/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/4d81d1e61673e8e3f988fe8efaebf630308f8e85/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/4d81d1e61673e8e3f988fe8efaebf630308f8e85/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/4d81d1e61673e8e3f988fe8efaebf630308f8e85/third_party/WebKit/Source/core/layout/ng/ng_units.cc
[modify] https://crrev.com/4d81d1e61673e8e3f988fe8efaebf630308f8e85/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 185 by bugdroid1@chromium.org, Feb 17 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ecb3fae9e265de59f536e27b66baeb641e90fae9

commit ecb3fae9e265de59f536e27b66baeb641e90fae9
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Feb 17 05:55:08 2017

[LayoutNG] Add fields required for new multi-col approach.

Adds:
1) UsedBlockSize() - used to communicate how much block size was used by
  preceeding fragments.

2) ChildBreakTokens() - used for resuming children in fragmented flow.

3) IsFinished() - if true the node cannot produce any more fragments. This
  shouldn't have any child break tokens.

BUG=635619

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

[modify] https://crrev.com/ecb3fae9e265de59f536e27b66baeb641e90fae9/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h
[modify] https://crrev.com/ecb3fae9e265de59f536e27b66baeb641e90fae9/third_party/WebKit/Source/core/layout/ng/ng_break_token.h

Project Member Comment 186 by bugdroid1@chromium.org, Feb 22 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/977c1dd577174ab7e8b9fd7686a4fa84011511d5

commit 977c1dd577174ab7e8b9fd7686a4fa84011511d5
Author: glebl <glebl@chromium.org>
Date: Wed Feb 22 20:44:43 2017

Fix incorrectly painted right floats in LayoutNG

This patch fixes several problems discovered while investigating the
issue with incorrectly painted right floats in LayoutNG.

List of changes:

1) NGFloatingObject.parent_space was renamed to original_parent_space
This was discussed in http://crrev.com/2679343004

2) While calculating an additional offset for right floats we need to
use float's box size == float's fragment inline size + float's margins
instead of just float's fragment inline size.

3) Fix the calculation of NGFloatingObject::left_offset
(it's used if float is attached to the new parent) for right floats

4) Fix incorrectly attached legacy floating objects.

BUG=635619
TESTS=NGBlockLayoutAlgorithmTest::PositionFloatInsideEmptyBlocks,

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

[modify] https://crrev.com/977c1dd577174ab7e8b9fd7686a4fa84011511d5/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/977c1dd577174ab7e8b9fd7686a4fa84011511d5/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/977c1dd577174ab7e8b9fd7686a4fa84011511d5/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/977c1dd577174ab7e8b9fd7686a4fa84011511d5/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h

Project Member Comment 187 by bugdroid1@chromium.org, Feb 23 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2ad35b86c33fe62c3be7c9368a009716d9892324

commit 2ad35b86c33fe62c3be7c9368a009716d9892324
Author: cbiesinger <cbiesinger@chromium.org>
Date: Thu Feb 23 00:19:23 2017

[layoutng] Split NGLayoutResult out of NGPhysicalFragment

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

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

[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[add] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[add] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_physical_text_fragment.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.cc
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.h
[modify] https://crrev.com/2ad35b86c33fe62c3be7c9368a009716d9892324/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member Comment 188 by bugdroid1@chromium.org, Feb 23 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/0e277884ee599a8a09b01c93c97934f3c8c285ac

commit 0e277884ee599a8a09b01c93c97934f3c8c285ac
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Feb 23 01:39:08 2017

[LayoutNG] Introduce block child iterator.

This will be used for iterating of children while resuming layout from a
given break token.

See experimental patch for the multi-col approach: crrev/2693193002

BUG=635619

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

[modify] https://crrev.com/0e277884ee599a8a09b01c93c97934f3c8c285ac/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/0e277884ee599a8a09b01c93c97934f3c8c285ac/third_party/WebKit/Source/core/layout/BUILD.gn
[add] https://crrev.com/0e277884ee599a8a09b01c93c97934f3c8c285ac/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.cc
[modify] https://crrev.com/0e277884ee599a8a09b01c93c97934f3c8c285ac/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h
[add] https://crrev.com/0e277884ee599a8a09b01c93c97934f3c8c285ac/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator.cc
[add] https://crrev.com/0e277884ee599a8a09b01c93c97934f3c8c285ac/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator.h
[add] https://crrev.com/0e277884ee599a8a09b01c93c97934f3c8c285ac/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator_test.cc
[modify] https://crrev.com/0e277884ee599a8a09b01c93c97934f3c8c285ac/third_party/WebKit/Source/core/layout/ng/ng_break_token.h

Project Member Comment 189 by bugdroid1@chromium.org, Feb 25 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1e2c173006a9d81fd8e12b325354e7d002ff3d5c

commit 1e2c173006a9d81fd8e12b325354e7d002ff3d5c
Author: atotic <atotic@chromium.org>
Date: Sat Feb 25 00:12:47 2017

Flip vertical-rl coordinates for Legacy compat

Bug: vertical-rl block layout looked identical to vertical-lr

Cause: LegacyLayout expects vertical-rl coordinates to be flipped @#$@$@!

Fix: Flip coordinates of vertical-rl blocks before setting X/Y

Personally, I'd love to eliminate legacy flipping, but it sounds like it'll be a boatload of work.

For context, here is what I've learned from kojii:
>>>>>
In legacy, we layout as if it's vertical-lr, then flip X. Ojan wanted to eliminate this flipping, because it's a source of bugs for paint and make code harder to read, since we need to apply different logic depending on whether the code runs before the flip and after the flip. Walter tried to do this before but it was too much work.

From you question, I guess we haven't come up with the strategy how to handle this?

I can only think two options:
Flip as the legacy does.
Allow block progression to grow in negative direction. We still don't know the right position before layout, so we need to shift after the layout.
#2 is cleaner and can eliminate flipping, but we need to allow block progression to grow in negative direction. I haven't really given enough thoughts which is better.
<<<<<
BUG=635619

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

[modify] https://crrev.com/1e2c173006a9d81fd8e12b325354e7d002ff3d5c/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc

Project Member Comment 190 by bugdroid1@chromium.org, Feb 25 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2d05eecafb761285205faf28e05f3c73f75efeb7

commit 2d05eecafb761285205faf28e05f3c73f75efeb7
Author: glebl <glebl@chromium.org>
Date: Sat Feb 25 01:19:40 2017

Add ClearanceOffset to LayoutNG Constraint space.

It's used for the case when fragment can position itself but needs to
know the current clearance line.

In particular this change fixes the use case that has blocks with
clearances, margins and intruding floats
https://software.hixie.ch/utilities/js/live-dom-viewer/saved/4847

BUG=635619
TEST=PositionBlocksWithClearanceAndIntrudingFloats

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

[modify] https://crrev.com/2d05eecafb761285205faf28e05f3c73f75efeb7/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/2d05eecafb761285205faf28e05f3c73f75efeb7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/2d05eecafb761285205faf28e05f3c73f75efeb7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/2d05eecafb761285205faf28e05f3c73f75efeb7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/2d05eecafb761285205faf28e05f3c73f75efeb7/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/2d05eecafb761285205faf28e05f3c73f75efeb7/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/2d05eecafb761285205faf28e05f3c73f75efeb7/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/2d05eecafb761285205faf28e05f3c73f75efeb7/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/2d05eecafb761285205faf28e05f3c73f75efeb7/third_party/WebKit/Source/core/layout/ng/ng_units.h

Project Member Comment 191 by bugdroid1@chromium.org, Feb 27 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8d2150bcb3b87ee43b979e6ddda563e35b23077f

commit 8d2150bcb3b87ee43b979e6ddda563e35b23077f
Author: atotic <atotic@chromium.org>
Date: Mon Feb 27 19:33:50 2017

Add Style() to PhysicalFragment

BUG=635619

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

[modify] https://crrev.com/8d2150bcb3b87ee43b979e6ddda563e35b23077f/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/8d2150bcb3b87ee43b979e6ddda563e35b23077f/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h

Project Member Comment 192 by bugdroid1@chromium.org, Feb 28 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9

commit c0b2149ee87d2451e91885d1a3378aa4a7c1dad9
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue Feb 28 04:52:20 2017

[LayoutNG] Allow block-flow layout to be fragmented using new approach.

This patch removes most of the old fragmentation code for the new approach.

If the algorithm reaches a fragmentation line it'll produce a break token for
resuming later.

BUG=635619

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

[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[delete] https://crrev.com/0decaefae68c308e45aad3b3fbda9c5b9a6793a8/third_party/WebKit/Source/core/layout/ng/ng_column_mapper.h
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_length_utils.h
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h
[modify] https://crrev.com/c0b2149ee87d2451e91885d1a3378aa4a7c1dad9/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h

Project Member Comment 193 by bugdroid1@chromium.org, Mar 1 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/57e74025b1f762fb2ccd1805de07928bdc81c03a

commit 57e74025b1f762fb2ccd1805de07928bdc81c03a
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Mar 01 20:16:55 2017

[LayoutNG] Remove unused class member on NGBlockLayoutAlgorithm.

BUG=635619

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

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

Project Member Comment 194 by bugdroid1@chromium.org, Mar 1 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/57ec489c4299b535c2c10f4eae838fddf508c442

commit 57ec489c4299b535c2c10f4eae838fddf508c442
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Wed Mar 01 23:47:22 2017

[LayoutNG] Move NGConstraintSpaceBuilder off Oilpan and DISALLOW_NEW.

This makes NGConstraintSpaceBuilder and NGFragmentBuilder part of the algorithm
object (not wrapped by a std::unique_ptr anymore).

BUG=635619

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

[modify] https://crrev.com/57ec489c4299b535c2c10f4eae838fddf508c442/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/57ec489c4299b535c2c10f4eae838fddf508c442/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/57ec489c4299b535c2c10f4eae838fddf508c442/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/57ec489c4299b535c2c10f4eae838fddf508c442/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h

Project Member Comment 195 by bugdroid1@chromium.org, Mar 2 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7f1b8e5ae10a9dc930aedfda4c51c47e9a0c2cc9

commit 7f1b8e5ae10a9dc930aedfda4c51c47e9a0c2cc9
Author: atotic <atotic@chromium.org>
Date: Thu Mar 02 01:05:45 2017

Remove NGBlockNode constructor, SetFirstChild, SetNextSibling methods

I've removed the NGBlockNode constructor, SetFirstChild, and SetNextSibling that were only used by tests as discussed on chat.

BUG=635619
[ng_blocknode_style]

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

[modify] https://crrev.com/7f1b8e5ae10a9dc930aedfda4c51c47e9a0c2cc9/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/7f1b8e5ae10a9dc930aedfda4c51c47e9a0c2cc9/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/7f1b8e5ae10a9dc930aedfda4c51c47e9a0c2cc9/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/7f1b8e5ae10a9dc930aedfda4c51c47e9a0c2cc9/third_party/WebKit/Source/core/layout/ng/ng_block_node_test.cc
[modify] https://crrev.com/7f1b8e5ae10a9dc930aedfda4c51c47e9a0c2cc9/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc

Project Member Comment 196 by bugdroid1@chromium.org, Mar 2 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4be772fa4ee0cb2bf699f27469db19b22866a7b0

commit 4be772fa4ee0cb2bf699f27469db19b22866a7b0
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Mar 02 19:20:27 2017

[LayoutNG] Switch NGConstraintSpace to being RefCounted.

This shouldn't have any behaviour changes.

BUG=635619

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

[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_absolute_utils_test.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder_test.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_inline_node_test.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_length_utils.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_length_utils_test.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_line_builder.h
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.h
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.h
[modify] https://crrev.com/4be772fa4ee0cb2bf699f27469db19b22866a7b0/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member Comment 197 by bugdroid1@chromium.org, Mar 2 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e2cdb910981e41e82987ca6d46ac64633e42637d

commit e2cdb910981e41e82987ca6d46ac64633e42637d
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Mar 02 21:29:41 2017

[LayoutNG] Switch NGBreakToken to being RefCounted.

After the fragmenting switch ownership of breaktokens is clearer,
and this just swtiches them to being refcounted.

Shouldn't have any behaviour changes.

BUG=635619

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

[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.cc
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator.cc
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator.h
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator_test.cc
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_break_token.h
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h
[modify] https://crrev.com/e2cdb910981e41e82987ca6d46ac64633e42637d/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.h

Project Member Comment 198 by bugdroid1@chromium.org, Mar 2 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9f81209c0afcb72f576f4794c28c11520b35d7bb

commit 9f81209c0afcb72f576f4794c28c11520b35d7bb
Author: glebl <glebl@chromium.org>
Date: Thu Mar 02 22:00:13 2017

Change NGLayoutOpportunityIterator constructor to work with const CS.

List of changes:
1) Resolve "const NGConstraintSpace" TODO in NGFloatingObject
2) Change NGLayoutOpportunityIterator to work with a const CS.

BUG=635619

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

[modify] https://crrev.com/9f81209c0afcb72f576f4794c28c11520b35d7bb/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/9f81209c0afcb72f576f4794c28c11520b35d7bb/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/9f81209c0afcb72f576f4794c28c11520b35d7bb/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/9f81209c0afcb72f576f4794c28c11520b35d7bb/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/9f81209c0afcb72f576f4794c28c11520b35d7bb/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h

Project Member Comment 199 by bugdroid1@chromium.org, Mar 3 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/55fe0730698fe3a8c88756055c9746a4b6984a7c

commit 55fe0730698fe3a8c88756055c9746a4b6984a7c
Author: glebl <glebl@chromium.org>
Date: Fri Mar 03 00:00:18 2017

Enable LayoutNGInline in LayoutNG virtual test suite.

BUG=635619

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

[modify] https://crrev.com/55fe0730698fe3a8c88756055c9746a4b6984a7c/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/55fe0730698fe3a8c88756055c9746a4b6984a7c/third_party/WebKit/LayoutTests/VirtualTestSuites

Project Member Comment 200 by bugdroid1@chromium.org, Mar 3 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c31e3e5a55e1bc3a719c7012ca0d9bff6ba2ba51

commit c31e3e5a55e1bc3a719c7012ca0d9bff6ba2ba51
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Mar 03 05:30:59 2017

[LayoutNG] Fix orthogonal writing mode with abs/fixed descendants.

The current code was mixing up the block_estimate between
descendant/container writing modes. It keeps it now in the child's
writing mode.

BUG=635619

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

[modify] https://crrev.com/c31e3e5a55e1bc3a719c7012ca0d9bff6ba2ba51/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/c31e3e5a55e1bc3a719c7012ca0d9bff6ba2ba51/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc

Project Member Comment 201 by bugdroid1@chromium.org, Mar 3 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f9aecd384eaaf9d50343b20c9a1bba61ed71f5dc

commit f9aecd384eaaf9d50343b20c9a1bba61ed71f5dc
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Mar 03 18:55:41 2017

[LayoutNG] Rename logical_available_size to container_size.

From: crrev.com/2727263003

The percentage resolution size should be based off the container, and the
available size should remain as-is.

BUG=635619

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

[modify] https://crrev.com/f9aecd384eaaf9d50343b20c9a1bba61ed71f5dc/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc

Project Member Comment 202 by bugdroid1@chromium.org, Mar 3 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/50019db39aa7c456d30552d8bc3c1e2747c5101f

commit 50019db39aa7c456d30552d8bc3c1e2747c5101f
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Mar 03 22:19:58 2017

[LayoutNG] Remove style_ and layout_result_ members on NGBlockNode.

They aren't really needed now. Eventually we'll want NGBlockNode to just
be a POD around the layout object to remove overhead.

After this we can transition NGBlockNode to just be a POD (NGInlineNode
needs a bit more work).

BUG=635619

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

[modify] https://crrev.com/50019db39aa7c456d30552d8bc3c1e2747c5101f/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/50019db39aa7c456d30552d8bc3c1e2747c5101f/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/50019db39aa7c456d30552d8bc3c1e2747c5101f/third_party/WebKit/Source/core/layout/ng/ng_block_node.h

Project Member Comment 203 by bugdroid1@chromium.org, Mar 7 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b5f30def1f14944ea1d342b99c2afcd693a31278

commit b5f30def1f14944ea1d342b99c2afcd693a31278
Author: glebl <glebl@chromium.org>
Date: Tue Mar 07 21:08:52 2017

Add LayoutOpportunityIterator method to NGConstraintSpace

LayoutOpportunityIterator method returns a default layout opportunity
iterator that starts from NGConstraintSpace::BfcOffset. It's invalidated
when a new exclusion is added.
Usage example: NGInlineBuilder needs to iterate over available
opportunities.

BUG=635619

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

[modify] https://crrev.com/b5f30def1f14944ea1d342b99c2afcd693a31278/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/b5f30def1f14944ea1d342b99c2afcd693a31278/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/b5f30def1f14944ea1d342b99c2afcd693a31278/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/b5f30def1f14944ea1d342b99c2afcd693a31278/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h

Project Member Comment 204 by bugdroid1@chromium.org, Mar 8 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/71cf4c57d32ff6e31adf1d5cfd0182b8132a727a

commit 71cf4c57d32ff6e31adf1d5cfd0182b8132a727a
Author: glebl <glebl@chromium.org>
Date: Wed Mar 08 08:27:08 2017

Add ShowLayoutOpportunityTree to NGLayoutOpportunityIterator

ShowLayoutOpportunityTree is used for debug purposes.

BUG=635619

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

[modify] https://crrev.com/71cf4c57d32ff6e31adf1d5cfd0182b8132a727a/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/71cf4c57d32ff6e31adf1d5cfd0182b8132a727a/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/71cf4c57d32ff6e31adf1d5cfd0182b8132a727a/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/71cf4c57d32ff6e31adf1d5cfd0182b8132a727a/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h

Project Member Comment 205 by bugdroid1@chromium.org, Mar 8 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ccd9ec6998eee48bc73e7d8a992c4cccdb31899

commit 5ccd9ec6998eee48bc73e7d8a992c4cccdb31899
Author: glebl <glebl@chromium.org>
Date: Wed Mar 08 13:56:44 2017

Combine 2 exclusions in Layout Opportunity Tree if they shadow each other

This patch introduces the logic that tries to combine 2 exclusions if
possible.
We can combine 2 exclusions if
 - they are adjoining to each other and have the same exclusion type
 - the new exclusion shadows the old one.
   That's because it's not allowed to position anything in the
   shadowed area.

Example:
 <div id="SS" style="float: left; height: 10px; width: 10px"></div>
 <div id="BB" style="float: left; height: 20px; width: 20px"></div>
 +----------------+
 |SSBB
 |**BB
 We combine SS and BB exclusions including the shadowed area (**).

BUG=635619
TESTS=TwoRightExclusionsShadowEachOther,
TwoLeftExclusionsShadowEachOther

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

[modify] https://crrev.com/5ccd9ec6998eee48bc73e7d8a992c4cccdb31899/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.cc
[modify] https://crrev.com/5ccd9ec6998eee48bc73e7d8a992c4cccdb31899/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.h
[modify] https://crrev.com/5ccd9ec6998eee48bc73e7d8a992c4cccdb31899/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/5ccd9ec6998eee48bc73e7d8a992c4cccdb31899/third_party/WebKit/Source/core/layout/ng/ng_exclusion.cc
[modify] https://crrev.com/5ccd9ec6998eee48bc73e7d8a992c4cccdb31899/third_party/WebKit/Source/core/layout/ng/ng_exclusion.h
[modify] https://crrev.com/5ccd9ec6998eee48bc73e7d8a992c4cccdb31899/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/5ccd9ec6998eee48bc73e7d8a992c4cccdb31899/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/5ccd9ec6998eee48bc73e7d8a992c4cccdb31899/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h

Project Member Comment 206 by bugdroid1@chromium.org, Mar 8 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ad9e2730b5bf41af6386f0526d5f901fb515258e

commit ad9e2730b5bf41af6386f0526d5f901fb515258e
Author: agrieve <agrieve@chromium.org>
Date: Wed Mar 08 21:11:33 2017

Revert of Combine 2 exclusions in Layout Opportunity Tree if they shadow each other (patchset #5 id:100001 of https://codereview.chromium.org/2733133002/ )

Reason for revert:
Broke downstream bot (see bug)

Original issue's description:
> Combine 2 exclusions in Layout Opportunity Tree if they shadow each other
>
> This patch introduces the logic that tries to combine 2 exclusions if
> possible.
> We can combine 2 exclusions if
>  - they are adjoining to each other and have the same exclusion type
>  - the new exclusion shadows the old one.
>    That's because it's not allowed to position anything in the
>    shadowed area.
>
> Example:
>  <div id="SS" style="float: left; height: 10px; width: 10px"></div>
>  <div id="BB" style="float: left; height: 20px; width: 20px"></div>
>  +----------------+
>  |SSBB
>  |**BB
>  We combine SS and BB exclusions including the shadowed area (**).
>
> BUG=635619
> TESTS=TwoRightExclusionsShadowEachOther,
> TwoLeftExclusionsShadowEachOther
>
> Review-Url: https://codereview.chromium.org/2733133002
> Cr-Commit-Position: refs/heads/master@{#455444}
> Committed: https://chromium.googlesource.com/chromium/src/+/5ccd9ec6998eee48bc73e7d8a992c4cccdb31899

TBR=ikilpatrick@chromium.org,cbiesinger@chromium.org,glebl@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=635619,699703

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

[modify] https://crrev.com/ad9e2730b5bf41af6386f0526d5f901fb515258e/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.cc
[modify] https://crrev.com/ad9e2730b5bf41af6386f0526d5f901fb515258e/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.h
[modify] https://crrev.com/ad9e2730b5bf41af6386f0526d5f901fb515258e/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/ad9e2730b5bf41af6386f0526d5f901fb515258e/third_party/WebKit/Source/core/layout/ng/ng_exclusion.cc
[modify] https://crrev.com/ad9e2730b5bf41af6386f0526d5f901fb515258e/third_party/WebKit/Source/core/layout/ng/ng_exclusion.h
[modify] https://crrev.com/ad9e2730b5bf41af6386f0526d5f901fb515258e/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/ad9e2730b5bf41af6386f0526d5f901fb515258e/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/ad9e2730b5bf41af6386f0526d5f901fb515258e/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h

Project Member Comment 207 by bugdroid1@chromium.org, Mar 9 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/875a510c97b3108d5ca70c7878c9a3a3d3830fd0

commit 875a510c97b3108d5ca70c7878c9a3a3d3830fd0
Author: glebl <glebl@chromium.org>
Date: Thu Mar 09 22:04:13 2017

Combine 2 exclusions in Layout Opportunity Tree if they shadow each other

Note: The original patch was reviewed and submitted in
https://codereview.chromium.org/2733133002/
The only difference with the original patch is that
NGExclusion::MaybeCombineWith doesn't have NOTREACHED anymore. That's
because some tests and text exclusions don't have exclusion.type set.
We just return false in this case.

This patch introduces the logic that tries to combine 2 exclusions if
possible.
We can combine 2 exclusions if
 - they are adjoining to each other and have the same exclusion type
 - the new exclusion shadows the old one.
   That's because it's not allowed to position anything in the
   shadowed area.

Example:
 <div id="SS" style="float: left; height: 10px; width: 10px"></div>
 <div id="BB" style="float: left; height: 20px; width: 20px"></div>
 +----------------+
 |SSBB
 |**BB
 We combine SS and BB exclusions including the shadowed area (**).

BUG=635619,699703
TESTS=TwoRightExclusionsShadowEachOther,
TwoLeftExclusionsShadowEachOther

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

[modify] https://crrev.com/875a510c97b3108d5ca70c7878c9a3a3d3830fd0/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.cc
[modify] https://crrev.com/875a510c97b3108d5ca70c7878c9a3a3d3830fd0/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.h
[modify] https://crrev.com/875a510c97b3108d5ca70c7878c9a3a3d3830fd0/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/875a510c97b3108d5ca70c7878c9a3a3d3830fd0/third_party/WebKit/Source/core/layout/ng/ng_exclusion.cc
[modify] https://crrev.com/875a510c97b3108d5ca70c7878c9a3a3d3830fd0/third_party/WebKit/Source/core/layout/ng/ng_exclusion.h
[modify] https://crrev.com/875a510c97b3108d5ca70c7878c9a3a3d3830fd0/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/875a510c97b3108d5ca70c7878c9a3a3d3830fd0/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/875a510c97b3108d5ca70c7878c9a3a3d3830fd0/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h

Project Member Comment 208 by bugdroid1@chromium.org, Mar 11 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/207688fb45319568db61e59c4c8391517793bf47

commit 207688fb45319568db61e59c4c8391517793bf47
Author: glebl <glebl@chromium.org>
Date: Sat Mar 11 04:14:30 2017

Use Opportunity Iterator to position text fragments in NGLineBuilder

This patch introduces NGLayoutOpportunityIterator to NGLineBuilder so it
can use it to search the next available opportunity to position text
fragments.

With this patch NGLayout starts supporting a base text floating around
floats that are positioned before an inline fragment.
Example:
<div id="container">
  <div id="left-float1"></div>
  <div id="left-float2"></div>
  <div id="right-float"></div>
  The quick brown fox jumps over the lazy dog
</div>

BUG=635619
TEST=NGTextLayoutAlgorithmTest::TextFloatsAroundFloatsBefore

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

[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_offset.cc
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_offset.h
[add] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_base_layout_algorithm_test.cc
[add] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_base_layout_algorithm_test.h
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_line_builder.h
[modify] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm.cc
[add] https://crrev.com/207688fb45319568db61e59c4c8391517793bf47/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm_test.cc

Project Member Comment 209 by bugdroid1@chromium.org, Mar 13 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ef24cecdfa9a5b06f294a3d0913cbdf326607bd6

commit ef24cecdfa9a5b06f294a3d0913cbdf326607bd6
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Mon Mar 13 23:50:32 2017

[LayoutNG] Remove checks for layout_box_ inside NGBlockNode.

We now always have one, remove branches. Also removed DCHECKs as its DCHECK'd
in the constructor.

BUG=635619

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

[modify] https://crrev.com/ef24cecdfa9a5b06f294a3d0913cbdf326607bd6/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc

Project Member Comment 210 by bugdroid1@chromium.org, Mar 16 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2

commit 5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2
Author: glebl <glebl@chromium.org>
Date: Thu Mar 16 02:41:51 2017

[LayoutNG] Move NGFloatingObject off Oilpan

BUG=635619

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

[modify] https://crrev.com/5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/5d5c1c5c6d96ba9431897acd2a0eea2a2eabcac2/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h

Project Member Comment 211 by bugdroid1@chromium.org, Mar 16 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f15f7389df8bb4dada67798e1cb4d7d8f2360e5

commit 2f15f7389df8bb4dada67798e1cb4d7d8f2360e5
Author: glebl <glebl@chromium.org>
Date: Thu Mar 16 20:21:36 2017

Move NGLayoutOpportunityTreeNode off Oilpan

BUG=635619

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

[modify] https://crrev.com/2f15f7389df8bb4dada67798e1cb4d7d8f2360e5/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/2f15f7389df8bb4dada67798e1cb4d7d8f2360e5/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/2f15f7389df8bb4dada67798e1cb4d7d8f2360e5/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.cc
[modify] https://crrev.com/2f15f7389df8bb4dada67798e1cb4d7d8f2360e5/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_tree_node.h

Project Member Comment 212 by bugdroid1@chromium.org, Mar 17 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/06f0e62cf0feb57ba69bb6f31d09e17d8a2cc073

commit 06f0e62cf0feb57ba69bb6f31d09e17d8a2cc073
Author: glebl <glebl@chromium.org>
Date: Fri Mar 17 00:49:23 2017

Make NGFragmentBuilder to keep track on text children.

This patch adds methods to access text children and their offsets from
NGFragmentBuilder, so they can be accessed from NGLineBuilder.

Also we want NGLineBuilder to have the class variable container_builder_
so we can add positioned floats directly to the fragment builder
bypassing any additional lists in between.

BUG=635619

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

[modify] https://crrev.com/06f0e62cf0feb57ba69bb6f31d09e17d8a2cc073/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.h
[modify] https://crrev.com/06f0e62cf0feb57ba69bb6f31d09e17d8a2cc073/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/06f0e62cf0feb57ba69bb6f31d09e17d8a2cc073/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/06f0e62cf0feb57ba69bb6f31d09e17d8a2cc073/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc
[modify] https://crrev.com/06f0e62cf0feb57ba69bb6f31d09e17d8a2cc073/third_party/WebKit/Source/core/layout/ng/ng_line_builder.h
[modify] https://crrev.com/06f0e62cf0feb57ba69bb6f31d09e17d8a2cc073/third_party/WebKit/Source/core/layout/ng/ng_text_fragment.h

Project Member Comment 213 by bugdroid1@chromium.org, Mar 18 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fb239514f323bd9999a3e13fb5d8e3a27eddabd8

commit fb239514f323bd9999a3e13fb5d8e3a27eddabd8
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Sat Mar 18 03:57:59 2017

[LayoutNG] Split apart CreateConstraintSpaceForChild.

Introduces PrepareChildLayout which takes now does all of the pre-layout
margin calculation, margin-collapsing, etc.

Going to try and follow up with a patch which bundles margin,
bfc_offset, etc, together instead of using the class curr_*_ variables.

BUG=635619

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

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

Project Member Comment 214 by bugdroid1@chromium.org, Mar 20 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b17da783915297bb8a3a46a6484b8787c7db28d

commit 8b17da783915297bb8a3a46a6484b8787c7db28d
Author: glebl <glebl@chromium.org>
Date: Mon Mar 20 19:14:02 2017

Move NG floats utility methods to the separate file

These methods will be used by text/block layout algorithms.

BUG=635619

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

[modify] https://crrev.com/8b17da783915297bb8a3a46a6484b8787c7db28d/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/8b17da783915297bb8a3a46a6484b8787c7db28d/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/8b17da783915297bb8a3a46a6484b8787c7db28d/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[add] https://crrev.com/8b17da783915297bb8a3a46a6484b8787c7db28d/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[add] https://crrev.com/8b17da783915297bb8a3a46a6484b8787c7db28d/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/8b17da783915297bb8a3a46a6484b8787c7db28d/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.cc
[modify] https://crrev.com/8b17da783915297bb8a3a46a6484b8787c7db28d/third_party/WebKit/Source/core/layout/ng/ng_physical_fragment.h

Project Member Comment 215 by bugdroid1@chromium.org, Mar 21 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/97fe29afc98d07e5e246dca8e92f8dc63c3619c7

commit 97fe29afc98d07e5e246dca8e92f8dc63c3619c7
Author: glebl <glebl@chromium.org>
Date: Tue Mar 21 16:37:41 2017

Move NGConstraintSpace utility methods to a separate file

These methods will be used by text/block layout algorithms.

BUG=635619

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

[modify] https://crrev.com/97fe29afc98d07e5e246dca8e92f8dc63c3619c7/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/97fe29afc98d07e5e246dca8e92f8dc63c3619c7/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[add] https://crrev.com/97fe29afc98d07e5e246dca8e92f8dc63c3619c7/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[add] https://crrev.com/97fe29afc98d07e5e246dca8e92f8dc63c3619c7/third_party/WebKit/Source/core/layout/ng/ng_space_utils.h

Project Member Comment 216 by bugdroid1@chromium.org, Mar 21 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1af111915f36842841682091b8c6882cae410831

commit 1af111915f36842841682091b8c6882cae410831
Author: atotic <atotic@chromium.org>
Date: Tue Mar 21 22:45:21 2017

Implement relative utility routines

These utilities will be used to compute relative offset in layoutng.

BUG=635619

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

[modify] https://crrev.com/1af111915f36842841682091b8c6882cae410831/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/1af111915f36842841682091b8c6882cae410831/third_party/WebKit/Source/core/layout/BUILD.gn
[add] https://crrev.com/1af111915f36842841682091b8c6882cae410831/third_party/WebKit/Source/core/layout/ng/ng_relative_utils.cc
[add] https://crrev.com/1af111915f36842841682091b8c6882cae410831/third_party/WebKit/Source/core/layout/ng/ng_relative_utils.h
[add] https://crrev.com/1af111915f36842841682091b8c6882cae410831/third_party/WebKit/Source/core/layout/ng/ng_relative_utils_test.cc

Project Member Comment 217 by bugdroid1@chromium.org, Mar 24 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/fdd13e6a954714ba0cec7070080eacb057fdb3ff

commit fdd13e6a954714ba0cec7070080eacb057fdb3ff
Author: glebl <glebl@chromium.org>
Date: Fri Mar 24 01:38:37 2017

[LayoutNG] Make NGLineBuilder work with inline floats

This patch teaches NGLineBuilder how to position inline floats.

Below is a high level overview of the implemented logic:
Consider this example:
The quick <div id="float"></div> brown fox jumps over the lazy dog

1) NGLineBuilder/NGTextLayoutAlgorithm starts constructing a line
2) Every time when we hit a text break opportunity
   NGLineBuilder::SetEnd gets a corresponding NGLayoutInlineItem
3) If it's a float then it tries to position it on the current text
   line.
4) If the float does not fit it will be added to the UnpositionedFloat
   list
5) When we place the line we position all pending floats from the
   UnpositionedFloat list.

BUG=635619
TEST=TextFloatsAroundInlineFloatThatFitsOnLine,
TextFloatsAroundInlineFloatThatDoesNotFitOnLine

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

[modify] https://crrev.com/fdd13e6a954714ba0cec7070080eacb057fdb3ff/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/fdd13e6a954714ba0cec7070080eacb057fdb3ff/third_party/WebKit/Source/core/layout/FloatingObjects.h
[modify] https://crrev.com/fdd13e6a954714ba0cec7070080eacb057fdb3ff/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/fdd13e6a954714ba0cec7070080eacb057fdb3ff/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/fdd13e6a954714ba0cec7070080eacb057fdb3ff/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc
[modify] https://crrev.com/fdd13e6a954714ba0cec7070080eacb057fdb3ff/third_party/WebKit/Source/core/layout/ng/ng_line_builder.h
[modify] https://crrev.com/fdd13e6a954714ba0cec7070080eacb057fdb3ff/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/fdd13e6a954714ba0cec7070080eacb057fdb3ff/third_party/WebKit/Source/core/layout/ng/ng_space_utils.h
[modify] https://crrev.com/fdd13e6a954714ba0cec7070080eacb057fdb3ff/third_party/WebKit/Source/core/layout/ng/ng_text_layout_algorithm_test.cc

Project Member Comment 218 by bugdroid1@chromium.org, Mar 24 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c

commit 6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c
Author: glebl <glebl@chromium.org>
Date: Fri Mar 24 18:55:54 2017

Fix block offset used by absolute-positioned objects

Absolute-positioned objects can be positioned as static
if top/bottom is auto. That's why they need to know
their block offset that composes from content_size and current
MarginStrut.

List of changes:
1) Set the correct block offset for absolute-positioned objects
2) Do not reset text child's margin as we need them to set
MarginStrut properly.
3) Move ComputeMinMaxContentSize and Style methods definition to
the base class and make them to be pure virtual methods.
4) Change CalculateMargins to work with NGLayoutInputNode base class
5) Update TestExpectations

BUG=635619
TEST=virtual/layout_ng/fast/block/margin-collapse/002.html and others

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

[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_bidi_paragraph.cc
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_bidi_paragraph.h
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_inline_node.cc
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_line_box_fragment_builder.cc
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc
[modify] https://crrev.com/6d8a607a3ba62cbd82d8ada7b10ad5c1ef5c978c/third_party/WebKit/Source/core/layout/ng/ng_text_fragment_builder.cc

Project Member Comment 219 by bugdroid1@chromium.org, Mar 24 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e1f56b7e3d7cc916df8a22831638ec1c4041ca7d

commit e1f56b7e3d7cc916df8a22831638ec1c4041ca7d
Author: glebl <glebl@chromium.org>
Date: Fri Mar 24 23:45:39 2017

Remove LayoutNGInline from LayoutNG virtual test suites args

LayoutNGInline flag was merged into LayoutNG
See https://codereview.chromium.org/2767793002/

BUG=635619

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

[modify] https://crrev.com/e1f56b7e3d7cc916df8a22831638ec1c4041ca7d/third_party/WebKit/LayoutTests/VirtualTestSuites

Project Member Comment 220 by bugdroid1@chromium.org, Mar 25 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/827e3e9ad3709d6ff335ec9bafd1e536ea78b09f

commit 827e3e9ad3709d6ff335ec9bafd1e536ea78b09f
Author: glebl <glebl@chromium.org>
Date: Sat Mar 25 01:56:10 2017

Fix DCHECK crash failed: object->isLayoutNGBlockFlow() in Inline Builder

We cannot cast every inline floating object to LayoutNGBlockFlow
because not all of them support LayoutNG. We need to use
NGBlockNode->Layout which supports legacy layout as well.

BUG=635619

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

[modify] https://crrev.com/827e3e9ad3709d6ff335ec9bafd1e536ea78b09f/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/827e3e9ad3709d6ff335ec9bafd1e536ea78b09f/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc

Project Member Comment 221 by bugdroid1@chromium.org, Mar 27 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b91d302ec822f5a1900e2e0479d98741c0fb6d73

commit b91d302ec822f5a1900e2e0479d98741c0fb6d73
Author: glebl <glebl@chromium.org>
Date: Mon Mar 27 03:27:10 2017

CS of out-of-flow positioned objects should have is_new_fc == true

List of changes:
1) IsNewFormattingContextForInFlowBlockLevelChild returns true for
   out-of-flow positioned child's style.
2) Add is_parent_new_fc_ to NGConstraintSpaceBuilder.
   We need need this bit to determine whether we need to pass exclusions
   to child's CS. Consider an example:
   <div id="container" style="width/height: 200px;">
     <float1><float-child></float1>
     <float2></float2>
   </div>
   float1 and float2 CSs will have available size == 200x200 and that
   size will be used to search for layout opportunities. So instead of
   passing arround the list of exclusions this patch introduces
   is_parent_new_fc that tells space_builder whether we need to pass
   exclusions to a child's CS.
3) Delete test lines that check NGLayoutOpportunityTree.
   That's because we can't access it anymore and we check its correctness
   in other places.

BUG=635619

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

[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_line_builder.cc
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_space_utils.h
[add] https://crrev.com/b91d302ec822f5a1900e2e0479d98741c0fb6d73/third_party/WebKit/Source/core/layout/ng/ng_space_utils_test.cc

Project Member Comment 222 by bugdroid1@chromium.org, Mar 29 2017
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/9996a777ad04b37b24711e97894ff1e4e35bcede

commit 9996a777ad04b37b24711e97894ff1e4e35bcede
Author: glebl <glebl@chromium.org>
Date: Wed Mar 29 20:16:06 2017

Add NGColumnLayoutAlgorithm skeleton implementation.

This patch adds the placeholder for NGColumnLayoutAlgorithm class
and refactors NG(Inline|Block|Column)LayoutAlgorithm classes
moving some common logic to NGLayoutAlgorithm base class.

BUG=635619

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

[modify] https://crrev.com/9996a777ad04b37b24711e97894ff1e4e35bcede/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/9996a777ad04b37b24711e97894ff1e4e35bcede/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/9996a777ad04b37b24711e97894ff1e4e35bcede/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/9996a777ad04b37b24711e97894ff1e4e35bcede/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/9996a777ad04b37b24711e97894ff1e4e35bcede/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[add] https://crrev.com/9996a777ad04b37b24711e97894ff1e4e35bcede/third_party/WebKit/Source/core/layout/ng/ng_column_layout_algorithm.cc
[add] https://crrev.com/9996a777ad04b37b24711e97894ff1e4e35bcede/third_party/WebKit/Source/core/layout/ng/ng_column_layout_algorithm.h
[modify] https://crrev.com/9996a777ad04b37b24711e97894ff1e4e35bcede/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/9996a777ad04b37b24711e97894ff1e4e35bcede/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.h
[modify] https://crrev.com/9996a777ad04b37b24711e97894ff1e4e35bcede/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h

Project Member Comment 223 by bugdroid1@chromium.org, Apr 3
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/46ad4aca1dbb7184ebfae2a42fb41aa510eb3bcc

commit 46ad4aca1dbb7184ebfae2a42fb41aa510eb3bcc
Author: mstensho <mstensho@opera.com>
Date: Mon Apr 03 12:06:31 2017

[LayoutNG] WIP on storing layout output in the legacy tree for multicol.

Painting NG fragment trees is still not supported, so in the meantime
we'll keep LayoutMultiColumnFlowThread and LayoutMultiColumnSet, and have
multicol painted and hit-tested in the old-fashioned way (just like
everything else, really).

Based on work by glebl.

BUG=635619

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

[modify] https://crrev.com/46ad4aca1dbb7184ebfae2a42fb41aa510eb3bcc/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/46ad4aca1dbb7184ebfae2a42fb41aa510eb3bcc/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc

Project Member Comment 224 by bugdroid1@chromium.org, Apr 4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/475dd3c192ae74c88eadf7c4284c9660858f1adc

commit 475dd3c192ae74c88eadf7c4284c9660858f1adc
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue Apr 04 02:51:13 2017

[LayoutNG] Refactor NGBlockLayoutAlgorithm::PrepareChildLayout()

Additionally this only flushes the pending floats if the child is actually going to clear something.

BUG=635619

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

[modify] https://crrev.com/475dd3c192ae74c88eadf7c4284c9660858f1adc/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/475dd3c192ae74c88eadf7c4284c9660858f1adc/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/475dd3c192ae74c88eadf7c4284c9660858f1adc/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/475dd3c192ae74c88eadf7c4284c9660858f1adc/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/475dd3c192ae74c88eadf7c4284c9660858f1adc/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/475dd3c192ae74c88eadf7c4284c9660858f1adc/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/475dd3c192ae74c88eadf7c4284c9660858f1adc/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/475dd3c192ae74c88eadf7c4284c9660858f1adc/third_party/WebKit/Source/core/layout/ng/ng_space_utils.h
[modify] https://crrev.com/475dd3c192ae74c88eadf7c4284c9660858f1adc/third_party/WebKit/Source/core/layout/ng/ng_space_utils_test.cc

Project Member Comment 225 by bugdroid1@chromium.org, Apr 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1683fd46e3c5116681700069575234fdc7f24744

commit 1683fd46e3c5116681700069575234fdc7f24744
Author: glebl <glebl@chromium.org>
Date: Wed Apr 05 16:05:47 2017

Remove redundant casts, use NGLayoutInputNode base functions everywhere

BUG=635619

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

[modify] https://crrev.com/1683fd46e3c5116681700069575234fdc7f24744/third_party/WebKit/Source/core/layout/ng/ng_block_break_token.h
[modify] https://crrev.com/1683fd46e3c5116681700069575234fdc7f24744/third_party/WebKit/Source/core/layout/ng/ng_block_child_iterator_test.cc
[modify] https://crrev.com/1683fd46e3c5116681700069575234fdc7f24744/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/1683fd46e3c5116681700069575234fdc7f24744/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/1683fd46e3c5116681700069575234fdc7f24744/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/1683fd46e3c5116681700069575234fdc7f24744/third_party/WebKit/Source/core/layout/ng/ng_break_token.h
[modify] https://crrev.com/1683fd46e3c5116681700069575234fdc7f24744/third_party/WebKit/Source/core/layout/ng/ng_inline_break_token.h
[modify] https://crrev.com/1683fd46e3c5116681700069575234fdc7f24744/third_party/WebKit/Source/core/layout/ng/ng_inline_node.h
[modify] https://crrev.com/1683fd46e3c5116681700069575234fdc7f24744/third_party/WebKit/Source/core/layout/ng/ng_physical_text_fragment.h

Project Member Comment 226 by bugdroid1@chromium.org, Apr 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/233f7b1a2f7d9bdb75250dbbd0b761b716a77d06

commit 233f7b1a2f7d9bdb75250dbbd0b761b716a77d06
Author: glebl <glebl@chromium.org>
Date: Wed Apr 05 18:42:18 2017

Reset constraint space's BFC offset if block creates a new FC

List of changes:
1) Resolved TODO in constraint_space_builder and actually
   reset BFC offset if block creates a new FC.
2) Added InlineBlockStartOffset to NGBoxStrut
   That helped to simplify CalculateLogicalOffsetForOpportunity
3) Refactored NGFloatingObject
   remove space and original_parent_space
   use (origin|from)_offset instead
4) Moved PositionPendingFloats to ng_float_utils

BUG=635619

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

[modify] https://crrev.com/233f7b1a2f7d9bdb75250dbbd0b761b716a77d06/third_party/WebKit/Source/core/layout/ng/geometry/ng_box_strut.h
[modify] https://crrev.com/233f7b1a2f7d9bdb75250dbbd0b761b716a77d06/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/233f7b1a2f7d9bdb75250dbbd0b761b716a77d06/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/233f7b1a2f7d9bdb75250dbbd0b761b716a77d06/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/233f7b1a2f7d9bdb75250dbbd0b761b716a77d06/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/233f7b1a2f7d9bdb75250dbbd0b761b716a77d06/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/233f7b1a2f7d9bdb75250dbbd0b761b716a77d06/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/233f7b1a2f7d9bdb75250dbbd0b761b716a77d06/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.cc

Project Member Comment 227 by bugdroid1@chromium.org, Apr 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d3920ccc81711676a41982bcae3a29b4142c6838

commit d3920ccc81711676a41982bcae3a29b4142c6838
Author: glebl <glebl@chromium.org>
Date: Thu Apr 06 22:14:15 2017

NGInlineLayoutAlgorithm should take margins of inline floats into account

1) Moved ComputeMarginsForChild to NGLayoutAlgorithm
2) Changed InlineLayoutAlgorithmTest to call ComputeMarginsForChild
   and pass them to NGFloatingObject

BUG=635619
TEST=NGInlineLayoutAlgorithmTest::PositionFloatsWithMargins

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

[modify] https://crrev.com/d3920ccc81711676a41982bcae3a29b4142c6838/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/d3920ccc81711676a41982bcae3a29b4142c6838/third_party/WebKit/Source/core/layout/ng/ng_inline_layout_algorithm_test.cc

Project Member Comment 228 by bugdroid1@chromium.org, Apr 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/58f84757e7003f5dcb3740d29227c02c84622162

commit 58f84757e7003f5dcb3740d29227c02c84622162
Author: glebl <glebl@chromium.org>
Date: Thu Apr 06 23:25:50 2017

Multicol block should be processed by Legacy Layout engine.

For the 1st phase of LayoutNG's multicol implementation we want
to utilize the existing ColumnBalancer class. That's why multicol blocks
need to processed by Legacy Layout engine.

This patch also fixes some DCHECK(NOT_IMPLEMENTED) crashes.

BUG=635619

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

[modify] https://crrev.com/58f84757e7003f5dcb3740d29227c02c84622162/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc

Project Member Comment 229 by bugdroid1@chromium.org, Apr 7
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/958c1c976cd22ec4ed8e5695351ea3868b096961

commit 958c1c976cd22ec4ed8e5695351ea3868b096961
Author: glebl <glebl@chromium.org>
Date: Fri Apr 07 19:45:58 2017

Let floats to use all available size if opportunity is infinite

Because of the implementation specific of the layout opportunity iterator
an empty opportunity can mean 2 things:
- search for layout opportunities is exhausted.
- opportunity has an infinite size. That's because CS is infinite.

This patch fixes DCHECK crashes when we return an infinite opportunity.

BUG=635619

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

[modify] https://crrev.com/958c1c976cd22ec4ed8e5695351ea3868b096961/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/958c1c976cd22ec4ed8e5695351ea3868b096961/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h

Project Member Comment 230 by bugdroid1@chromium.org, Apr 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/84ebc90d051758718f7caa2dd32d507678c6f00f

commit 84ebc90d051758718f7caa2dd32d507678c6f00f
Author: glebl <glebl@chromium.org>
Date: Wed Apr 12 13:22:52 2017

Inline algorithm should take into account the wrapper's clearance line.

Inline block's clearance is ignored unlike the wrapper's clearance line
that should be take into account when InlineLayoutAlgorithm updates
fragment's BFC offset.

BUG=635619
TEST=virtual/layout_ng/fast/block/margin-collapse/webkit-margin-collapse-floats.html

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

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

Project Member Comment 231 by bugdroid1@chromium.org, Apr 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/6051193a1a2f5d7ad673326ba398324ad4975841

commit 6051193a1a2f5d7ad673326ba398324ad4975841
Author: glebl <glebl@chromium.org>
Date: Wed Apr 12 17:43:11 2017

Move container_builder to NGLayoutAlgorithm base class.

BUG=635619

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

[modify] https://crrev.com/6051193a1a2f5d7ad673326ba398324ad4975841/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/6051193a1a2f5d7ad673326ba398324ad4975841/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/6051193a1a2f5d7ad673326ba398324ad4975841/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/6051193a1a2f5d7ad673326ba398324ad4975841/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/6051193a1a2f5d7ad673326ba398324ad4975841/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/6051193a1a2f5d7ad673326ba398324ad4975841/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h

Project Member Comment 232 by bugdroid1@chromium.org, Apr 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/84a681389ab3960b8db073bda33d98845aba7488

commit 84a681389ab3960b8db073bda33d98845aba7488
Author: cbiesinger <cbiesinger@chromium.org>
Date: Fri Apr 14 00:55:43 2017

[layoutng] Use correct writing mode for overflow rect

Specifically for the case when we create a fragment from the result
from old layout.

R=ikilpatrick@chromium.org
BUG=635619

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

[modify] https://crrev.com/84a681389ab3960b8db073bda33d98845aba7488/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc

Project Member Comment 233 by bugdroid1@chromium.org, Apr 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/057496dafdebbba19007a49506826c3ba155ca2a

commit 057496dafdebbba19007a49506826c3ba155ca2a
Author: glebl <glebl@chromium.org>
Date: Fri Apr 14 01:25:56 2017

Add LayoutNG virtual test suites paths to ImageFirstTests

BUG=635619

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

[modify] https://crrev.com/057496dafdebbba19007a49506826c3ba155ca2a/third_party/WebKit/LayoutTests/ImageFirstTests

Project Member Comment 234 by bugdroid1@chromium.org, Apr 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1cabd22b2e8ee5e4ff1fd679bbb73c0b2542d405

commit 1cabd22b2e8ee5e4ff1fd679bbb73c0b2542d405
Author: glebl <glebl@chromium.org>
Date: Fri Apr 14 17:25:32 2017

Change NGLayoutOpportunityIterator API to work with list of exclusions

This updates NGLayoutOpportunityIterator API so it starts accepting
the list of exclusions instead of constraint space.

We need this API to implement the logic that will search for layout
opportunities to place a BFC block while we have some placement
pending floats.

BUG=635619

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

[modify] https://crrev.com/1cabd22b2e8ee5e4ff1fd679bbb73c0b2542d405/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/1cabd22b2e8ee5e4ff1fd679bbb73c0b2542d405/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/1cabd22b2e8ee5e4ff1fd679bbb73c0b2542d405/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/1cabd22b2e8ee5e4ff1fd679bbb73c0b2542d405/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/1cabd22b2e8ee5e4ff1fd679bbb73c0b2542d405/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h

Project Member Comment 235 by bugdroid1@chromium.org, Apr 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3dd276cc350cc3b5c9972da71ce0ac3b9ffc0ebe

commit 3dd276cc350cc3b5c9972da71ce0ac3b9ffc0ebe
Author: glebl <glebl@chromium.org>
Date: Wed Apr 19 17:44:49 2017

Add CSS2/normal-flow LayoutNG virtual test suite.

BUG=635619

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

[modify] https://crrev.com/3dd276cc350cc3b5c9972da71ce0ac3b9ffc0ebe/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/3dd276cc350cc3b5c9972da71ce0ac3b9ffc0ebe/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/3dd276cc350cc3b5c9972da71ce0ac3b9ffc0ebe/third_party/WebKit/LayoutTests/virtual/layout_ng/external/wpt/css/CSS2/normal-flow/README.txt

Project Member Comment 236 by bugdroid1@chromium.org, Apr 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/b59a494feace581260b274ef052e907eb05b02da

commit b59a494feace581260b274ef052e907eb05b02da
Author: glebl <glebl@chromium.org>
Date: Wed Apr 19 21:28:33 2017

Add external/wpt/css/CSS2/abspos LayoutNG virtual test suite.

BUG=635619

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

[modify] https://crrev.com/b59a494feace581260b274ef052e907eb05b02da/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/b59a494feace581260b274ef052e907eb05b02da/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/b59a494feace581260b274ef052e907eb05b02da/third_party/WebKit/LayoutTests/virtual/layout_ng/external/wpt/css/CSS2/abspos/README.txt

Project Member Comment 237 by bugdroid1@chromium.org, Apr 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/da81aa1de05ec039a032e824fa4174205308d58b

commit da81aa1de05ec039a032e824fa4174205308d58b
Author: glebl <glebl@chromium.org>
Date: Wed Apr 19 22:45:36 2017

Add wpt/css/CSS2/positioning LayoutNG virtual test suite.

BUG=635619

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

[modify] https://crrev.com/da81aa1de05ec039a032e824fa4174205308d58b/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/da81aa1de05ec039a032e824fa4174205308d58b/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/da81aa1de05ec039a032e824fa4174205308d58b/third_party/WebKit/LayoutTests/virtual/layout_ng/external/wpt/css/CSS2/positioning/README.txt

Project Member Comment 238 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c873e8003e60b30ff8bd65fd345b70faf77cd700

commit c873e8003e60b30ff8bd65fd345b70faf77cd700
Author: glebl <glebl@chromium.org>
Date: Thu Apr 20 04:39:01 2017

Use Layout Opportunity Iterator to position new FC blocks.

This patch fixes the use case when we need to use Layout Opportunity
Iterator to position a block that establishes a new formatting context.

BUG=635619
TEST=NGBlockLayoutAlgorithmTest.NewFcBlockWithAdjoiningFloatCollapsesMargins

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

[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_layout_input_node.h
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/c873e8003e60b30ff8bd65fd345b70faf77cd700/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h

Project Member Comment 239 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1a802b27bf4b89e135972cb2e0dbb851524da9ef

commit 1a802b27bf4b89e135972cb2e0dbb851524da9ef
Author: tansell <tansell@chromium.org>
Date: Thu Apr 20 06:45:10 2017

webkit-layout-tests: Revert accidental addition of duplicate virtual tests

The patch "Add wpt/css/CSS2/positioning LayoutNG virtual test suite
(patchset #2 id:20001 of https://codereview.chromium.org/2823223004/ )"
accidentally added the "external/wpt/css/CSS2/abspos" and
"external/wpt/css/CSS2/normal-flow" directory to the virtual suite
twice.

This causes layout tests on swarming to fail because the tests are then
run on two different shards making it impossible to merge the results.

This patch removes the second addition.

TBR=atotic@chromium.org,ikilpatrick@chromium.org,glebl@chromium.org,qyearsley@chromium.org,mcgreevy@chromium.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=635619,713525

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

[modify] https://crrev.com/1a802b27bf4b89e135972cb2e0dbb851524da9ef/third_party/WebKit/LayoutTests/VirtualTestSuites

Project Member Comment 240 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d3ced05d8183fd5a7fcdb416faa140547b7cdab9

commit d3ced05d8183fd5a7fcdb416faa140547b7cdab9
Author: glebl <glebl@chromium.org>
Date: Thu Apr 20 18:13:46 2017

Add external/wpt/css/CSS2/floats LayoutNG virtual test suite

BUG=635619

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

[modify] https://crrev.com/d3ced05d8183fd5a7fcdb416faa140547b7cdab9/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/d3ced05d8183fd5a7fcdb416faa140547b7cdab9/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/d3ced05d8183fd5a7fcdb416faa140547b7cdab9/third_party/WebKit/LayoutTests/virtual/layout_ng/external/wpt/css/CSS2/floats/README.txt

Project Member Comment 241 by bugdroid1@chromium.org, Apr 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/987a18a0769f7b6f09aa498334af7df93760032b

commit 987a18a0769f7b6f09aa498334af7df93760032b
Author: glebl <glebl@chromium.org>
Date: Thu Apr 20 20:41:03 2017

Add external/wpt/css/CSS2/floats-clear LayoutNG virtual test suite.

BUG=635619

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

[modify] https://crrev.com/987a18a0769f7b6f09aa498334af7df93760032b/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/987a18a0769f7b6f09aa498334af7df93760032b/third_party/WebKit/LayoutTests/VirtualTestSuites
[add] https://crrev.com/987a18a0769f7b6f09aa498334af7df93760032b/third_party/WebKit/LayoutTests/virtual/layout_ng/external/wpt/css/CSS2/floats-clear/README.txt

Project Member Comment 242 by bugdroid1@chromium.org, Apr 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/da6a43e5fabf5aba0ee611e593d71809851727b0

commit da6a43e5fabf5aba0ee611e593d71809851727b0
Author: glebl <glebl@chromium.org>
Date: Mon Apr 24 23:23:41 2017

Collapse margins before child that uses legacy layout.

Due to the fact that legacy layout doesn't have a notion of MarginStrut
we can't calculate margins correctly for use cases that need to use both
layout engines.

This patch collapses margins and update the parent BFC if the next child
cannot be layed out using LayoutNG(ex. tables).

BUG=635619
TESTS=bunch of fixed tests in CSS2.1 and fast/block test suites

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

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

Project Member Comment 243 by bugdroid1@chromium.org, Apr 28
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f9d77f770956b1a2e948d54117d066a349680aa5

commit f9d77f770956b1a2e948d54117d066a349680aa5
Author: glebl <glebl@chromium.org>
Date: Fri Apr 28 03:36:07 2017

Check if fragment's block size fits into a layout opportunity.

Since we started using LayoutOpportunity iterator for positioning BFC
fragments, we can't longer rely on the assumption that
FindLayoutOpportunityForFragment will be used for floats only.

List of changes:
- Change FindLayoutOpportunityForFragment to check if fragment's block
  size fits into a layout opportunity.
- Change NGInlineLayoutAlgorithm to avoid adding font's descent to
  line_bottom if the text only includes object replacement characters
  I need it to fix floats-wrap-top-below-002l-ref.xht.

BUG=635619

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

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

Project Member Comment 244 by bugdroid1@chromium.org, May 1
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dc843fac8da1a46453dd6035c910c07f5237922c

commit dc843fac8da1a46453dd6035c910c07f5237922c
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Mon May 01 22:57:57 2017

[LayoutNG] Change anonymous LayoutBlockFlow to LayoutNGBlockFlow

Additionally this resolves an incoming margin strut once we know the inline node
isn't empty. In this respect we treat it like a zero-height div.

This regresses some tests that were using the existing LayoutBlockFlow layout.
I.e. when we are inside a LayoutTableCell.

BUG=635619

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

[modify] https://crrev.com/dc843fac8da1a46453dd6035c910c07f5237922c/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/dc843fac8da1a46453dd6035c910c07f5237922c/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/dc843fac8da1a46453dd6035c910c07f5237922c/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/dc843fac8da1a46453dd6035c910c07f5237922c/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc

Project Member Comment 245 by bugdroid1@chromium.org, May 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/32b0510d7d81ee6bb988d9283336320306debbdf

commit 32b0510d7d81ee6bb988d9283336320306debbdf
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Sat May 06 19:20:59 2017

[LayoutNG] Don't use the margin-strut in the OOF static-position if zero-height.

This patch does two things:

 - Doesn't include the margin strut in the OOF static-position if we are
   currently going to be a zero-height-div.

   This gives a static block offset of 0 relative to its immediate
   parent, which is correct.

 - Positions zero-height fragments using *their* end margin strut. Not
   the previous margin strut.

BUG=635619

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

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

Project Member Comment 246 by bugdroid1@chromium.org, May 9
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/415a2e47b6e9f046a503388298ad2e94b24e3c7b

commit 415a2e47b6e9f046a503388298ad2e94b24e3c7b
Author: glebl <glebl@chromium.org>
Date: Tue May 09 04:02:00 2017

Make leading OOF objects to be handled by block layout in LayoutNG

This patch changes LayoutNG's LayoutObject tree for DOM examples with
OOF object

We want to use the block layout for out of flow positioned
objects when they go in front of inline blocks or if they are just
standalone objects.
Example 1:
<div id="zero"><div id="oof"></div></div>
  Legacy Layout: #oof is in inline context.
  LayoutNG: #oof is in block context.

Example 2:
<div id=container><oof></oof>Hello!</div>
  Legacy Layout: oof is in inline context.
  LayoutNG: oof is in block context.

Example 3:
  <div id=container>Hello!<oof></oof></div>
  Legacy Layout: oof is in inline context.
  LayoutNG: oof is in inline context.

This also deprecates ShouldHandleByInlineContext in favor of
LayoutObject::ChildrenInline()

2 new failing tests:
floats-clear/floats-114.xht
floats-clear/floats-040.xht
Those are reftest, this patch fixes border/padding issue for OOF so they
started failing because we need to fix reftest as well.

BUG=712665,635619

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

[modify] https://crrev.com/415a2e47b6e9f046a503388298ad2e94b24e3c7b/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/415a2e47b6e9f046a503388298ad2e94b24e3c7b/third_party/WebKit/Source/core/layout/LayoutBlockFlow.cpp
[modify] https://crrev.com/415a2e47b6e9f046a503388298ad2e94b24e3c7b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/415a2e47b6e9f046a503388298ad2e94b24e3c7b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/415a2e47b6e9f046a503388298ad2e94b24e3c7b/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/415a2e47b6e9f046a503388298ad2e94b24e3c7b/third_party/WebKit/Source/core/layout/ng/ng_block_node_test.cc

Project Member Comment 247 by bugdroid1@chromium.org, May 9
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1fbf200f4fd34bf2b6f77818a60a472763046e9b

commit 1fbf200f4fd34bf2b6f77818a60a472763046e9b
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Tue May 09 04:17:40 2017

[LayoutNG] Introduce NGPositionedFloat.

This pulls out the positioned fragment info from NGFloatingObject.
This allows for in a followup to perform layout on a NGUnpositionedFloat
post positioning (to allow for fragmentation).

BUG=635619

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

[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[add] https://crrev.com/1fbf200f4fd34bf2b6f77818a60a472763046e9b/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.h

Project Member Comment 248 by bugdroid1@chromium.org, May 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d2f276e5c8e098ab9cc16d77315a2475e94a2582

commit d2f276e5c8e098ab9cc16d77315a2475e94a2582
Author: glebl <glebl@chromium.org>
Date: Fri May 12 00:12:35 2017

Add container_block_offset,top_offset to NGFloatingObject.

To correctly paint a float from LayoutNG we need to know the BFC offset
of the container to which we are attaching this float. It's used to
calculate {@code left_offset}, {@code top_offset}.
In most situations {@code (left|top)_offset} equals to float's logical
offset except the cases where a float needs to be re-attached to a non-zero
height parent.
Example:
  <body>
    <p style="height: 60px">Example</p>
    <div id="zero-height-div"><float></div>
Here the float's logical offset is 0 relative to its #zero-height-div
parent. Because of the "zero height" div this float is re-attached to the
1st non-empty parent => body. To paint this float correctly we provide the
modified {@code (top|left)_offset} which is relative to the float's new
parent.
I.e. for our example {@code top_offset} == #zero-height-div's BFC offset
                     - body's BFC offset + float's logical offset

BUG=635619
TESTS=Fixes 8 tests in CSS2/floats-clear, 1 in CSS2/floats,
1 in CSS2/positioning, 2 in fast/block/margin-collapse,
2 in fast/block/float. Total: 14

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

[modify] https://crrev.com/d2f276e5c8e098ab9cc16d77315a2475e94a2582/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/d2f276e5c8e098ab9cc16d77315a2475e94a2582/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/d2f276e5c8e098ab9cc16d77315a2475e94a2582/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/d2f276e5c8e098ab9cc16d77315a2475e94a2582/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/d2f276e5c8e098ab9cc16d77315a2475e94a2582/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/d2f276e5c8e098ab9cc16d77315a2475e94a2582/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/d2f276e5c8e098ab9cc16d77315a2475e94a2582/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/d2f276e5c8e098ab9cc16d77315a2475e94a2582/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/d2f276e5c8e098ab9cc16d77315a2475e94a2582/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/d2f276e5c8e098ab9cc16d77315a2475e94a2582/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.h

Project Member Comment 249 by bugdroid1@chromium.org, May 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/da4d35823f06ecc77f46d29263e15320c1df17ed

commit da4d35823f06ecc77f46d29263e15320c1df17ed
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri May 12 00:40:29 2017

[LayoutNG] Remove space_builder_ member from block algorithm.

Just a small cleanup.

BUG=635619

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

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

Project Member Comment 250 by bugdroid1@chromium.org, May 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/59bb4d543e23a248553affa3dc9de1e01a1ce228

commit 59bb4d543e23a248553affa3dc9de1e01a1ce228
Author: glebl <glebl@chromium.org>
Date: Wed May 17 04:25:58 2017

Account for border/padding in NG Inline layout algorithm.

BUG=635619
TESTS=79 tests

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

[modify] https://crrev.com/59bb4d543e23a248553affa3dc9de1e01a1ce228/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/59bb4d543e23a248553affa3dc9de1e01a1ce228/third_party/WebKit/Source/core/layout/ng/geometry/ng_logical_rect.h
[modify] https://crrev.com/59bb4d543e23a248553affa3dc9de1e01a1ce228/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/59bb4d543e23a248553affa3dc9de1e01a1ce228/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h

Project Member Comment 251 by bugdroid1@chromium.org, May 18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d1e715f97c48ae097e623c505f754a54ffdd3795

commit d1e715f97c48ae097e623c505f754a54ffdd3795
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu May 18 01:39:38 2017

[LayoutNG] Delay layout of floats until fragmentation is known.

There a quite a few related changes in this patch:
 - Renames NGFloatingObject -> NGUnpositionedFloat.
 - Additionally remove some additional fields now that we have the node.
 - Delays the layout of a same writing mode fragment until after we have
   positioned it.
 - Float which are in different writing modes have layout performed on them
    eagerly as they don't need to wait for their position to know their fragmentation
    offset.
BUG=635619
CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_layout_tests_layout_ng

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

[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/BUILD.gn
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm_test.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_node_test.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_line_box_fragment.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/inline/ng_physical_text_fragment.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/layout_ng_block_flow.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_base_layout_algorithm_test.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm_test.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_block_node.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_box_fragment.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h
[delete] https://crrev.com/4c703a924fc505015240e1ee859c6a9340d4be2e/third_party/WebKit/Source/core/layout/ng/ng_floating_object.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_fragment.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_fragment.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_fragment_builder.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_layout_result.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_layout_result.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_out_of_flow_layout_part_test.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.cc
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_physical_box_fragment.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_positioned_float.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[add] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.cc
[add] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.h
[modify] https://crrev.com/d1e715f97c48ae097e623c505f754a54ffdd3795/third_party/WebKit/Source/web/tests/NGInlineLayoutTest.cpp

Project Member Comment 252 by bugdroid1@chromium.org, May 18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/737c499089ee23d99d00924586570a25626da738

commit 737c499089ee23d99d00924586570a25626da738
Author: glebl <glebl@chromium.org>
Date: Thu May 18 18:41:10 2017

Always position floats from fragment->PositionedFloats list.

BUG=635619
TESTS=8 new test failures
All failed tests were investigated and assigned to corresponding bugs.
The main reason why they started failing is because we actually started rendering something instead of producing an empty page.

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

[modify] https://crrev.com/737c499089ee23d99d00924586570a25626da738/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/737c499089ee23d99d00924586570a25626da738/third_party/WebKit/Source/core/layout/ng/ng_block_node.cc

Project Member Comment 253 by bugdroid1@chromium.org, May 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/50371f4220864d87df39e77fa08a832ac6653278

commit 50371f4220864d87df39e77fa08a832ac6653278
Author: glebl <glebl@chromium.org>
Date: Fri May 19 02:56:19 2017

Respect the clearance while positioning pending floats.

BUG=635619
TEST=fixed 10 tests

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

[modify] https://crrev.com/50371f4220864d87df39e77fa08a832ac6653278/third_party/WebKit/LayoutTests/TestExpectations
[modify] https://crrev.com/50371f4220864d87df39e77fa08a832ac6653278/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.cc
[modify] https://crrev.com/50371f4220864d87df39e77fa08a832ac6653278/third_party/WebKit/Source/core/layout/ng/ng_floats_utils.cc
[modify] https://crrev.com/50371f4220864d87df39e77fa08a832ac6653278/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/50371f4220864d87df39e77fa08a832ac6653278/third_party/WebKit/Source/core/layout/ng/ng_space_utils.h
[modify] https://crrev.com/50371f4220864d87df39e77fa08a832ac6653278/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.cc
[modify] https://crrev.com/50371f4220864d87df39e77fa08a832ac6653278/third_party/WebKit/Source/core/layout/ng/ng_unpositioned_float.h

Project Member Comment 254 by bugdroid1@chromium.org, May 19
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f1a94f90a612655f8deedeab50df2522d718c9fc

commit f1a94f90a612655f8deedeab50df2522d718c9fc
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri May 19 04:02:55 2017

[LayoutNG] Refactor main-loop of block layout algorithm.

This just simplifies things by having clear paths for each type of child.
There should be no functional changes.

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

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

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

Cc: lchoi@chromium.org
Project Member Comment 256 by bugdroid1@chromium.org, May 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/75cc88dbeb08f84239ec18a70f921327aac120f9

commit 75cc88dbeb08f84239ec18a70f921327aac120f9
Author: atotic <atotic@chromium.org>
Date: Wed May 24 21:47:19 2017

Overflow tests

While working on overflow, I've discovered corner cases that were not covered by existing tests. The conformance to spec among browsers was also not very good. So I decided to create a small test suite focussed on overflow in CSS box model.

I am talking to w-p-t folks about moving this to w-p-t. I'd like to commit it here right now so layoutng overflow can be tested exhaustively.

Currently:
Edge passes all tests
FF fails overflow-basic-004.html
Chrome fails overflow-basic-002.html, overflow-basic-004.html, and overflow-transform-002.html

I've filed bugs for failing test cases.

BUG=635619

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

[modify] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/TestExpectations
[add] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/overflow/README.md
[add] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/overflow/overflow-basic-001.html
[add] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/overflow/overflow-basic-002.html
[add] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/overflow/overflow-basic-003.html
[add] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/overflow/overflow-basic-004.html
[add] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/overflow/overflow-basic-005.html
[add] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/overflow/overflow-basic-006.html
[add] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/overflow/overflow-bug-chrome-ng-001.html
[add] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/overflow/overflow-transform-001.html
[add] https://crrev.com/75cc88dbeb08f84239ec18a70f921327aac120f9/third_party/WebKit/LayoutTests/overflow/overflow-transform-002.html

Project Member Comment 257 by bugdroid1@chromium.org, May 26
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8ae2026e07808d63a1722123f46a5d33e05064a0

commit 8ae2026e07808d63a1722123f46a5d33e05064a0
Author: atotic <atotic@chromium.org>
Date: Fri May 26 22:22:40 2017

Our old TestExpectations file had problems. I like to know the effect CRs have on our test coverage. The problems prevented this:

1) 125 passing tests were marked as failing.

With 125 stealth passing tests, I would not know what different my CR would make.

2) [Crash/Failing] tests were all marked as [Skip]

Because [Skip] tests are ignored by bots, any changes in status to skipped tests
had to be manually checked by developer.

This patch correctly marks all virtual/layout_ng tests:
- all passing tests are no longer skipped.
- all failing tests are explicitly marked as such:

[ Failure ] means test has failed
[ Crashed ] means that bad thing
[ Skip ] means test has missing expectations, and cannot be run

I've cleared with dpranke and quearsley that we can mark our tests as such.

I've also created an html page that can be run inside test-layout-results that generates these TestExpectations automatically. We will all be able to use it to automate updating of TestExpectations. This will come in a separate patch.

BUG=635619

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

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

Project Member Comment 258 by bugdroid1@chromium.org, May 27
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/372982c74eebb545c7dbf84b199c69be4a7b915d

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

Update TestExpectations.

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

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

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

BUG=635619
TBR=atotic
NOTRY=true

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

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

Project Member Comment 259 by bugdroid1@chromium.org, May 27
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d932d66b1f1d0d873d935a6c9e2df0807843c908

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

Update TestExpectations for crashing test.

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

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

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

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

Project Member Comment 260 by bugdroid1@chromium.org, Jun 1
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/639c840bf93e2934fe6b3f564f90060313d5791a

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

[LayoutNG] Removes per-child state from NGBlockLayoutAlgorithm.

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

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

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

BUG=635619

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

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

Project Member Comment 261 by bugdroid1@chromium.org, Jun 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1656845883fb809150e98b3eb0748ea1bb663992

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

[LayoutNG] PODify NGLayoutInputNode and sub-classes.

This converts NGLayoutInputNode into a POD-like class.

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

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

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

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

Project Member Comment 262 by bugdroid1@chromium.org, Jun 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f723897c7994e4ceee81dba57a6a3b94bc974a05

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

[LayoutNG] Refactor of NGLineBreaker.

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

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

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

 - Tries to simplify a few other things.

BUG=635619

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

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

Project Member Comment 263 by bugdroid1@chromium.org, Jun 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d0b8f4909e983ea6c5dd60c25216e6fdf3ccb39b

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

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

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

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

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

Project Member Comment 264 by bugdroid1@chromium.org, Jun 16
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e47fe16501daea54a8926f47a3c9afe778887094

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

[LayoutNG] Fixes small crash inside preferred widths.

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

BUG=635619

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

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

Project Member Comment 265 by bugdroid1@chromium.org, Jun 23
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/07a754c70339bd975c433dfe344f003eaeaa8cc3

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

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

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

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

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

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

Project Member Comment 266 by bugdroid1@chromium.org, Jun 29
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a0782d6a6407c627004bac723cf73751d8fec130

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

[LayoutNG] Move bfc_offset_, end_margin_sturt_ to NGLayoutResult

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

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

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

BUG=635619

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

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

Project Member Comment 267 by bugdroid1@chromium.org, Jun 29
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4d840c2c1c461a5afe64e8138fc79a34f3ab79c1

commit 4d840c2c1c461a5afe64e8138fc79a34f3ab79c1
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Thu Jun 29 18:35:22 2017

[LayoutNG] Remove dead IsNewFormattingContextFor...

There should be no behaviour changes.

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

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

[modify] https://crrev.com/4d840c2c1c461a5afe64e8138fc79a34f3ab79c1/third_party/WebKit/Source/core/BUILD.gn
[modify] https://crrev.com/4d840c2c1c461a5afe64e8138fc79a34f3ab79c1/third_party/WebKit/Source/core/layout/ng/ng_space_utils.cc
[modify] https://crrev.com/4d840c2c1c461a5afe64e8138fc79a34f3ab79c1/third_party/WebKit/Source/core/layout/ng/ng_space_utils.h
[delete] https://crrev.com/7c3996033bfbba55546e24e8845d8f76e271ff27/third_party/WebKit/Source/core/layout/ng/ng_space_utils_test.cc

Project Member Comment 268 by bugdroid1@chromium.org, Jun 29
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d1e96b7ddea88fa9219478bfbd04f94772e31718

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

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

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

BUG=635619

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

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

Project Member Comment 269 by bugdroid1@chromium.org, Jun 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ef23377b7e6dc4067596b3ae607b31e2b6ee0582

commit ef23377b7e6dc4067596b3ae607b31e2b6ee0582
Author: ikilpatrick <ikilpatrick@chromium.org>
Date: Fri Jun 30 20:47:11 2017

[LayoutNG] Add floats_bfc_offset to constraint space.

This is in preparation for the new float handling behaviour, in patch:
https://codereview.chromium.org/2954953002/

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

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

[modify] https://crrev.com/ef23377b7e6dc4067596b3ae607b31e2b6ee0582/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/ef23377b7e6dc4067596b3ae607b31e2b6ee0582/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/ef23377b7e6dc4067596b3ae607b31e2b6ee0582/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.cc
[modify] https://crrev.com/ef23377b7e6dc4067596b3ae607b31e2b6ee0582/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_builder.h

Project Member Comment 270 by bugdroid1@chromium.org, Jun 30
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/e65e2d1acb3c3bb037f0183bdd3db4cf35da45c2

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

[LayoutNG] Float behavior simplification before larger patch.

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

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

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

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

BUG=635619

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

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

Project Member Comment 271 by bugdroid1@chromium.org, Jul 1
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8264d60e9d2885b2cd657afff45be608c64d7410

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

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

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

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

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

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

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

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

Project Member Comment 272 by bugdroid1@chromium.org, Jul 11
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8b362497f43bbd6e95e901f5418dde03f3dfaf17

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

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

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

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

BUG=635619

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

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

Blockedon: 740993
Project Member Comment 274 by bugdroid1@chromium.org, Jul 12
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f905d51bad504b4b43149637760b649aea7ddc24

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

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

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

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

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

BUG=635619

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

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

Project Member Comment 275 by bugdroid1@chromium.org, Jul 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/987ca52741e0e4f0399de57732e4afd2382871cc

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

[LayoutNG] Refactor of HandleInflow children.

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

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

BUG=635619

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

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

Project Member Comment 276 by bugdroid1@chromium.org, Jul 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ea05d342e75fd13557b698a80b1685de9e94b3a0

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

[LayoutNG] Update TestExpecations

After inline+float patches these now pass.

BUG=635619
TBR=eae@chromium.org

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

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

Project Member Comment 277 by bugdroid1@chromium.org, Jul 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d7c499c91d952d2a135f9ccde25ad876b974b3b3

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

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

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

Project Member Comment 278 by bugdroid1@chromium.org, Jul 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d82e3fae8315a1eee30b27522ccdb284bdd8ad3c

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

[LayoutNG] Fix IsEmptyBlock check within block_layout_algorithm.

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

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

BUG=635619

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

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

Project Member Comment 279 by bugdroid1@chromium.org, Jul 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/8d8f44b58664f8e29248bfe502b0ae1503a690c4

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

[LayoutNG] Make positioned floats actual children.

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

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

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

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

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

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

Project Member Comment 280 by bugdroid1@chromium.org, Jul 18
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/5ca5cdd5604fa069fa93fbf2bbd0ca2f08dbf692

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

[layoutng] Implement CloneWithoutOffsets for fragments and layout results

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

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

Project Member Comment 281 by bugdroid1@chromium.org, Jul 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1083c1c966c351a32d6ab41a0491bebbf22e661f

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

[LayoutNG] Margin collapsing complexity with empty blocks.

This patch does two things broadly...

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

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

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

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

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

Project Member Comment 282 by bugdroid1@chromium.org, Jul 20
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/32717cbfa2281290f151e084a24371f6395d75f2

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

[LayoutNG] Fix margins on html element.

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

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

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

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

Project Member Comment 283 by bugdroid1@chromium.org, Jul 28
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/906e6dbe7651a60772888fcdfaa6abeba3b3ff0e

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

[layoutng] Initial version of fragment caching

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

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

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

Project Member Comment 284 by bugdroid1@chromium.org, Aug 4
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3fcca5f0cd8bdd3ebe7901a06df917a72be75453

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

[LayoutNG] Remove useless optional.

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

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

Project Member Comment 285 by bugdroid1@chromium.org, Aug 7
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c1ee4256ab3e4affcc2f637766e1273c3fa6f225

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

[LayoutNG] Add top quirky margin support.

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

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

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

Passes a bunch more tests!

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

Project Member Comment 286 by bugdroid1@chromium.org, Aug 7
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/128e762c3c33a1f50910d7b3c7f30b4783ad3eeb

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

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

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

There should be no functional changes.

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

Project Member Comment 287 by bugdroid1@chromium.org, Aug 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/f5224f5970efebccb2bff18aa2c1e81812317dc2

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

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

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

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

Project Member Comment 288 by bugdroid1@chromium.org, Aug 8
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/46f867a23c65bdadf3c894eead1111c129b668e3

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

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

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

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

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

Project Member Comment 289 by bugdroid1@chromium.org, Aug 11
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2f7bcee7d7fbd13cf799b5eb8c0adc971940155a

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

[LayoutNG] Fix clearance offset for floats.

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

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

Project Member Comment 290 by bugdroid1@chromium.org, Aug 14
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/030d725a83dd028887d21dff36d4346f9f60a813

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

[LayoutNG] Refactor of exclusion space.

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

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

Project Member Comment 291 by bugdroid1@chromium.org, Aug 17
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d3bed518f4ff601c765a6adc3faadc3a547c3000

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

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

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

Project Member Comment 292 by bugdroid1@chromium.org, Aug 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/884ff3fe73a13c13b809448cf7d9ec9d12ecad4b

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

[LayoutNG] Remove NGConstraintSpaceBuilder "copy" constructor.

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

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

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

Project Member Comment 293 by bugdroid1@chromium.org, Aug 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/05c3ca735f2a3a73076083eeb36c679bdaa9ac11

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

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

This reverts commit 884ff3fe73a13c13b809448cf7d9ec9d12ecad4b.

Reason for revert: Compile failure on mac builder:

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

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

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

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

Project Member Comment 294 by bugdroid1@chromium.org, Aug 21
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/300313546581a64bd2cb78daaf1d0183fbd323ad

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

[LayoutNG] Remove NGConstraintSpaceBuilder "copy" constructor.

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

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

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

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

Project Member Comment 295 by bugdroid1@chromium.org, Aug 22
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dc87ced727310df9650b8e1fa2f1fbd7db637b46

commit dc87ced727310df9650b8e1fa2f1fbd7db637b46
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Tue Aug 22 01:10:36 2017

[LayoutNG] Remove NGConstraintSpace::AddExclusion method.

This is another patch to prepare for the immutable result & friends.

Bug: 635619
Change-Id: I600ca1a835e6e5471b8193709340c40c075f0441
Reviewed-on: https://chromium-review.googlesource.com/619657
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Emil A Eklund <eae@chromium.org>
Cr-Commit-Position: refs/heads/master@{#496160}
[modify] https://crrev.com/dc87ced727310df9650b8e1fa2f1fbd7db637b46/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.cc
[modify] https://crrev.com/dc87ced727310df9650b8e1fa2f1fbd7db637b46/third_party/WebKit/Source/core/layout/ng/ng_constraint_space.h
[modify] https://crrev.com/dc87ced727310df9650b8e1fa2f1fbd7db637b46/third_party/WebKit/Source/core/layout/ng/ng_constraint_space_test.cc
[modify] https://crrev.com/dc87ced727310df9650b8e1fa2f1fbd7db637b46/third_party/WebKit/Source/core/layout/ng/ng_exclusion_space.cc
[modify] https://crrev.com/dc87ced727310df9650b8e1fa2f1fbd7db637b46/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.cc
[modify] https://crrev.com/dc87ced727310df9650b8e1fa2f1fbd7db637b46/third_party/WebKit/Source/core/layout/ng/ng_layout_opportunity_iterator.h

Project Member Comment 296 by bugdroid1@chromium.org, Aug 23
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1113d818fef977c9a2a88067003f0b12d1638f0c

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

[LayoutNG] Fix CreatesNewFormattingContext.

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

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

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

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

Project Member Comment 297 by bugdroid1@chromium.org, Aug 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d6e0bb934a513d5b8e3a9fb6464eb821960e44a4

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

[LayoutNG] Make NGLayoutResult, NGConstraintSpace immutable.

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

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

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

The next followup will be constifying NGConstraintSpace everywhere.

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

Project Member Comment 298 by bugdroid1@chromium.org, Aug 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/598c96a32034ae482d5476faadc2f9a7c408fd30

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

[LayoutNG] Make NGConstraintSpace const everywhere!

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

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

Project Member Comment 299 by bugdroid1@chromium.org, Aug 25
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a283b490d4920c214a7e367fe9fa19fdeace5160

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

[LayoutNG] Introduce NGBfcOffset, NGBfcRect \o/

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

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

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

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

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

Project Member Comment 300 by bugdroid1@chromium.org, Sep 1
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/c836281c961fccb15ffb31c248b1947aa16af1b9

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

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

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

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

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

Project Member Comment 301 by bugdroid1@chromium.org, Sep 24
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/2e3e5e893c8cfd98aca703f32ec0f97fafaf5f5f

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

[LayoutNG] Fix some margin issues with positioning new FCs

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

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

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

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

Project Member Comment 302 by bugdroid1@chromium.org, Sep 25
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/cafe9a44f35e55dc8a7afac9ae9cc4b62b93a89f

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

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

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

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

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

This should not have any behaviour change.

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

Project Member Comment 303 by bugdroid1@chromium.org, Oct 5
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/294b5f169d6c69ed9eaa2f98ddb7960169daaca8

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

[LayoutNG] Remove OverflowSize from box fragments for now.

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

This also moves it to the layout result.

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

Project Member Comment 304 by bugdroid1@chromium.org, Oct 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/66ac041a68867bba038144fa82d5b91d7ca55e19

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

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

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

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

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

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

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

Project Member Comment 305 by bugdroid1@chromium.org, Oct 6
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/077374eafc3252db5df33395650a01758cf4c16b

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

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

This reverts commit 66ac041a68867bba038144fa82d5b91d7ca55e19.

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

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

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

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

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

Project Member Comment 306 by bugdroid1@chromium.org, Oct 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/51cced5f78a1e7f7ab0cb74714c08f6bf083d0e8

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

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

Ok! Time to start landing this sequence of changes!

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

This change should have no change on test results.

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

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

Project Member Comment 307 by bugdroid1@chromium.org, Oct 13
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/ad6caa44d0d0d574f94e6b2513aeae37f85132ef

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

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

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

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

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

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

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

TBR=eae@chromium.org

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

Project Member Comment 308 by bugdroid1@chromium.org, Oct 14 (6 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/339c7b13964f2660e7a3d457ed95b1c3c622e2f1

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

[LayoutNG] Change NGPositionedFloat to have a NGBfcOffset.

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

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

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

Project Member Comment 309 by bugdroid1@chromium.org, Oct 16 (4 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/1952fe806ae19463f2c5b082653b974258df7784

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

[LayoutNG] Create NGContainerFragmentBuilder.

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

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

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

Project Member Comment 310 by bugdroid1@chromium.org, Oct 16 (4 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/dd949c9768d89761951909a71e16311a1c5e5d7e

commit dd949c9768d89761951909a71e16311a1c5e5d7e
Author: Ian Kilpatrick <ikilpatrick@chromium.org>
Date: Mon Oct 16 16:14:26 2017

[LayoutNG] Add NGFragmentBuilderType template param to alg.

This shouldn't have any functional changes.

Bug: 635619
Cq-Include-Trybots: master.tryserver.chromium.linux:linux_layout_tests_layout_ng
Change-Id: I1ad9ee091fadf1fd5eee7d27a0ace92e93f5a0b5
Reviewed-on: https://chromium-review.googlesource.com/719447
Commit-Queue: Ian Kilpatrick <ikilpatrick@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Cr-Commit-Position: refs/heads/master@{#509067}
[modify] https://crrev.com/dd949c9768d89761951909a71e16311a1c5e5d7e/third_party/WebKit/Source/core/layout/ng/inline/ng_inline_layout_algorithm.h
[modify] https://crrev.com/dd949c9768d89761951909a71e16311a1c5e5d7e/third_party/WebKit/Source/core/layout/ng/ng_block_layout_algorithm.h
[modify] https://crrev.com/dd949c9768d89761951909a71e16311a1c5e5d7e/third_party/WebKit/Source/core/layout/ng/ng_column_layout_algorithm.h
[modify] https://crrev.com/dd949c9768d89761951909a71e16311a1c5e5d7e/third_party/WebKit/Source/core/layout/ng/ng_layout_algorithm.h
[modify] https://crrev.com/dd949c9768d89761951909a71e16311a1c5e5d7e/third_party/WebKit/Source/core/layout/ng/ng_page_layout_algorithm.h

Project Member Comment 311 by bugdroid1@chromium.org, Oct 17 (3 days ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/3686157f247f914fef142445e74f38ef42c3c6a5

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

[LayoutNG] Add Vector<NGPositionedFloat> to NGLayoutResult

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

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

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

Project Member Comment 312 by bugdroid1@chromium.org, Yesterday (46 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d43f99b68cda849a6a6367548c82c205bf9ee1fd

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

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

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

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

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

Project Member Comment 313 by bugdroid1@chromium.org, Today (21 hours ago)
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/efac657cfb5cb8fa935ae4c12b2bed66237f8fbc

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

[LayoutNG] Move PrepareLayout to NGBlockNode::FirstChild

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

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

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

Sign in to add a comment