gecko-dev/testing/web-platform/tests/css/css-sizing
Koji Ishii 4d0e2fd4d6 Bug 1560928 [wpt PR 17428] - [LayoutNG] Fix |ComputeMinMaxSize| not to clear |NeedsLayout|, a=testonly
Automatic update from web-platform-tests
[LayoutNG] Fix |ComputeMinMaxSize| not to clear |NeedsLayout|

This patch fixes |ComputeMinMaxSize| not to clear |NeedsLayout|
when all of following conditions are met:
1. Needs |MinMaxSize|
2. Is an orthogonal flow root.
3. Is legacy layout.
4. Change is applied that dirties the layout.

In this case, |NGBlockNode::ComputeMinMaxSize()| calls
|Layout()|, which goes to |RunLegacyLayout()|, which calls
|LayoutObject::LayoutIfNeeded()|. However, its constraint
space is intermediate that it does not update
|CachedLayoutResult|.

Then when laying it out, because |NeedsLayout()| is cleared,
existing out-of-date |CachedLayoutResult| is used.

This patch fixes:
1. Not to pre-layout orthogonal roots if it has
   |CachedLayoutResult|.
2. Set |NeedsLayout()| if |RunLegacyLayout()| clears it, but
   |CachedLayoutResult| was not updated.

Bug: 976859
Change-Id: Ic2d979a3c4f9479040bfd0e54cf4283b60ed52b5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1670146
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@{#671460}

--

wpt-commits: 47b08c15495e05fa73e243736742851109198af1
wpt-pr: 17428
2019-07-24 13:30:47 +01:00
..
parsing
support
META.yml
aspect-ratio-affects-container-width-when-height-changes.html
block-image-percentage-max-height-inside-inline.html
button-min-width.html
clone-intrinsic-size-ref.html
clone-intrinsic-size.html
clone-nowrap-intrinsic-size-bidi-ref.html
clone-nowrap-intrinsic-size-bidi.html
clone-nowrap-intrinsic-size-ref.html
clone-nowrap-intrinsic-size.html
dynamic-available-size-iframe.html
fit-content-percentage-padding.html
image-min-max-content-intrinsic-size-change-001-ref.html
image-min-max-content-intrinsic-size-change-001.html
image-min-max-content-intrinsic-size-change-002.html
image-min-max-content-intrinsic-size-change-003-ref.html
image-min-max-content-intrinsic-size-change-003.html
image-min-max-content-intrinsic-size-change-004.html
image-min-max-content-intrinsic-size-change-005-ref.html
image-min-max-content-intrinsic-size-change-005.html
image-min-max-content-intrinsic-size-change-006.html
image-min-max-content-intrinsic-size-change-007-ref.html
image-min-max-content-intrinsic-size-change-007.html
image-min-max-content-intrinsic-size-change-008.html
image-percentage-max-height-in-anonymous-block.html
inheritance.html
intrinsic-percent-non-replaced-001-ref.html
intrinsic-percent-non-replaced-001.html
intrinsic-percent-non-replaced-002-ref.html
intrinsic-percent-non-replaced-002.html
intrinsic-percent-non-replaced-003.html
intrinsic-percent-non-replaced-004-ref.html
intrinsic-percent-non-replaced-004.html
intrinsic-percent-non-replaced-005-ref.html
intrinsic-percent-non-replaced-005.html
intrinsic-percent-replaced-001.html
intrinsic-percent-replaced-002.html
intrinsic-percent-replaced-003.html
intrinsic-percent-replaced-004.html
intrinsic-percent-replaced-005.html
intrinsic-percent-replaced-006.html
min-max-content-orthogonal-flow-crash-001.html
orthogonal-writing-mode-float-in-inline.html
percentage-height-in-flexbox.html
percentage-height-replaced-content-in-auto-cb.html
percentage-min-width.html
range-percent-intrinsic-size-1-ref.html
range-percent-intrinsic-size-1.html
range-percent-intrinsic-size-2-ref.html
range-percent-intrinsic-size-2.html
range-percent-intrinsic-size-2a-ref.html
range-percent-intrinsic-size-2a.html
slice-intrinsic-size-ref.html
slice-intrinsic-size.html
slice-nowrap-intrinsic-size-bidi-ref.html
slice-nowrap-intrinsic-size-bidi.html
slice-nowrap-intrinsic-size-ref.html
slice-nowrap-intrinsic-size.html
table-percentage-max-width-beside-float.html
table-percentage-min-width-below-float.html
table-percentage-min-width-beside-float.html
whitespace-and-break.html