fune/testing/web-platform/tests/css/css-sizing
Ting-Yu Lin b6efce5f6a Bug 1670151 Part 2 - Use nsIFrame::GetAspectRatio() to query aspect-ratio rather than obtaining it from style. r=dholbert
`GetAspectRatio()` considers both the `aspect-ratio` property and the intrinsic
aspect-ratio of replaced elements.

Changing just `nsIFrame::ComputeISizeValueFromAspectRatio()` fixed the intrinsic
size for replaced elements when there is a definite height. However, it doesn't
pass any tests on wpt, so I wrote intrinsic-size-017.html to
intrinsic-size-019.html to cover this.

Modifying `nsLayoutUtils::IntrinsicForAxis()` fixed the intrinsic size
contribution for replaced elements. We already have the logic to use inline size
from aspect ratio in `AddIntrinsicSizeOffset()` and `GetIntrinsicCoord()`. We
just need to compute it when sizes in the inline axis have intrinsic keywords.
intrinsic-size-020.html to intrinsic-size-025.html cover this.

grid-auto-min-sizing-min-content-min-size-{001,002}-ref.html are also modified
to reflect this new behavior. The modified subtests are:
- 001.html: Test 1, 2, 3, 6, 8, 9
- 002.html: Test 1, 2, 3, 6, 7, 9

In these modified subtests, before this patch, our rendering was all different
from Google Chrome's. After this patch, our behavior aligns with Google Chrome,
except for Test 7 and 9 in 002.html.

Differential Revision: https://phabricator.services.mozilla.com/D212716
2024-06-06 05:59:46 +00:00
..
animation Bug 1886639 [wpt PR 45234] - Simplify arithmetic operations on calc-size() during animation., a=testonly 2024-03-22 17:34:46 +00:00
aspect-ratio Bug 1670151 Part 2 - Use nsIFrame::GetAspectRatio() to query aspect-ratio rather than obtaining it from style. r=dholbert 2024-06-06 05:59:46 +00:00
contain-intrinsic-size Bug 1894724 [wpt PR 46033] - Map contain-intrinsic-size tests to web-features, a=testonly 2024-05-08 07:01:48 +00:00
parsing
support
aspect-ratio-affects-container-width-when-height-changes.html
auto-scrollbar-inside-stf-abspos-ref.html
auto-scrollbar-inside-stf-abspos.html
available-height-for-replaced-content-001.html
block-fit-content-as-initial-ref.html
block-fit-content-as-initial.html
block-image-percentage-max-height-inside-inline.html
block-size-with-min-or-max-content-1-ref.html
block-size-with-min-or-max-content-1a.html
block-size-with-min-or-max-content-1b.html
block-size-with-min-or-max-content-table-1-ref.html
block-size-with-min-or-max-content-table-1a.html
block-size-with-min-or-max-content-table-1b.html
border-box-and-max-content-001-ref.html
border-box-and-max-content-001.html
border-box-and-max-content-002-ref.html
border-box-and-max-content-002.html
border-box-and-max-content-003-ref.html
border-box-and-max-content-003.html
box-sizing-border-box-001-ref.xht
box-sizing-border-box-001.xht
box-sizing-border-box-002-ref.xht
box-sizing-border-box-002.xht
box-sizing-border-box-003-ref.xht
box-sizing-border-box-003.xht
box-sizing-border-box-004-ref.xht
box-sizing-border-box-004.xht
box-sizing-content-box-001-ref.xht
box-sizing-content-box-001.xht
box-sizing-content-box-002-ref.xht
box-sizing-content-box-002.xht
box-sizing-content-box-003-ref.xht
box-sizing-content-box-003.xht
box-sizing-replaced-001-ref.xht
box-sizing-replaced-001.xht
box-sizing-replaced-002-ref.xht
box-sizing-replaced-002.xht
box-sizing-replaced-003-ref.xht
box-sizing-replaced-003.xht
button-min-width.html
calc-margins-block.html
calc-margins-fieldset-content.html
calc-margins-fieldset-legend.html
calc-margins-flex.html
calc-margins-table-caption.html
canvas-intrinsic-dynamic.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
div-auto-margin-bottom-ref.html
div-auto-margin-ref.html
div-auto-margin-top-ref.html
div-block-size-ref.html
div-fit-content-auto-margin-bottom.tentative.html
div-fit-content-auto-margin-top.tentative.html
div-fit-content-auto-margin.tentative.html
div-fit-content-block-size.tentative.html
div-fit-content-orthogonal-auto-margin-left.tentative.html
div-fit-content-orthogonal-auto-margin-right.tentative.html
div-fit-content-orthogonal-auto-margin.tentative.html
div-fit-content-orthogonal-block-size.tentative.html
div-max-content-auto-margin-bottom.tentative.html
div-max-content-auto-margin-top.tentative.html
div-max-content-auto-margin.tentative.html
div-max-content-block-size.tentative.html
div-max-content-orthogonal-auto-margin-left.tentative.html
div-max-content-orthogonal-auto-margin-right.tentative.html
div-max-content-orthogonal-auto-margin.tentative.html
div-max-content-orthogonal-block-size.tentative.html
div-min-content-auto-margin-bottom.tentative.html
div-min-content-auto-margin-top.tentative.html
div-min-content-auto-margin.tentative.html
div-min-content-block-size.tentative.html
div-min-content-orthogonal-auto-margin-left.tentative.html
div-min-content-orthogonal-auto-margin-right.tentative.html
div-min-content-orthogonal-auto-margin.tentative.html
div-min-content-orthogonal-block-size.tentative.html
div-orthogonal-auto-margin-left-ref.html
div-orthogonal-auto-margin-ref.html
div-orthogonal-auto-margin-right-ref.html
div-orthogonal-block-size-ref.html
div-orthogonal-left-and-non-auto-margin-ref.html
div-orthogonal-left-and-non-auto-margin.tentative.html
div-top-and-non-auto-margin-ref.html
div-top-and-non-auto-margin.tentative.html
dynamic-available-size-iframe.html
dynamic-change-inline-size-001.html
dynamic-change-inline-size-002.html
dynamic-change-inline-size-003-ref.html
dynamic-change-inline-size-003.html
fit-content-block-size-abspos.html
fit-content-block-size-fixedpos-ref.html
fit-content-block-size-fixedpos.html
fit-content-contribution-001.html
fit-content-length-percentage-001.html
fit-content-length-percentage-002.html
fit-content-length-percentage-003.html
fit-content-length-percentage-004.html
fit-content-length-percentage-005.html
fit-content-length-percentage-006.html
fit-content-length-percentage-007.html
fit-content-length-percentage-008.html
fit-content-length-percentage-009.html
fit-content-length-percentage-010.html
fit-content-length-percentage-011.html
fit-content-length-percentage-012.html
fit-content-length-percentage-013.html
fit-content-length-percentage-014.html
fit-content-length-percentage-015.html
fit-content-length-percentage-016.html
fit-content-percentage-padding.html
frameset-intrinsic-crash.html
grid-item-image-percentage-min-height-computes-as-0-ref.html
grid-item-image-percentage-min-height-computes-as-0.html
hori-block-size-small-or-larger-than-container-with-min-or-max-content-1-ref.html
hori-block-size-small-or-larger-than-container-with-min-or-max-content-1.html
hori-block-size-small-or-larger-than-container-with-min-or-max-content-2-ref.html
hori-block-size-small-or-larger-than-container-with-min-or-max-content-2a.html
hori-block-size-small-or-larger-than-container-with-min-or-max-content-2b.html
image-fractional-height-with-wide-aspect-ratio.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.html
image-min-max-content-intrinsic-size-change-006.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-001.html
inheritance-002.html
inline-intrinsic-size-calc-ref.html
inline-intrinsic-size-calc.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
intrinsic-percent-replaced-007.html
intrinsic-percent-replaced-008.html
intrinsic-percent-replaced-009-ref.html
intrinsic-percent-replaced-009.html
intrinsic-percent-replaced-010-ref.html
intrinsic-percent-replaced-010.html
intrinsic-percent-replaced-011-ref.html
intrinsic-percent-replaced-011.html
intrinsic-percent-replaced-dynamic-001.html
intrinsic-percent-replaced-dynamic-002.html
intrinsic-percent-replaced-dynamic-003.html
intrinsic-percent-replaced-dynamic-004.html
intrinsic-percent-replaced-dynamic-005.html
intrinsic-percent-replaced-dynamic-006.html
intrinsic-percent-replaced-dynamic-007.html
intrinsic-percent-replaced-dynamic-008.html
intrinsic-percent-replaced-dynamic-009.html
intrinsic-percent-replaced-dynamic-010.html
intrinsic-size-fallback-replaced.html
max-content-input-001-ref.html
max-content-input-001.html
META.yml
min-content-min-width-000.html
min-content-negative-margin-crash.html
min-max-content-orthogonal-flow-crash-001.html
min-width-max-width-precedence.html
nested-flexbox-image-percentage-max-height-computes-as-none-ref.html
nested-flexbox-image-percentage-max-height-computes-as-none.html
ortho-writing-mode-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
replaced-aspect-ratio-intrinsic-size-001.html
replaced-aspect-ratio-intrinsic-size-002.html
replaced-aspect-ratio-stretch-fit-001.html
replaced-aspect-ratio-stretch-fit-002.html
replaced-aspect-ratio-stretch-fit-003.html
replaced-fractional-height-from-aspect-ratio-2.html
replaced-fractional-height-from-aspect-ratio.html
replaced-max-size-saturation.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
svg-intrinsic-size-001.html
svg-intrinsic-size-002.html
svg-intrinsic-size-003.html
svg-intrinsic-size-004.html
svg-intrinsic-size-005-ref.html
svg-intrinsic-size-005.html
svg-intrinsic-size-006-ref.html
svg-intrinsic-size-006.html
table-child-percentage-height-with-border-box-ref.html
table-child-percentage-height-with-border-box.html
table-percentage-max-width-beside-float.html
table-percentage-min-width-below-float.html
table-percentage-min-width-beside-float.html
textarea-large-padding-crash.html
thin-element-render-ref.html
thin-element-render.html
vert-block-size-small-or-larger-than-container-with-min-or-max-content-1-ref.html
vert-block-size-small-or-larger-than-container-with-min-or-max-content-1.html
vert-block-size-small-or-larger-than-container-with-min-or-max-content-2-ref.html
vert-block-size-small-or-larger-than-container-with-min-or-max-content-2a.html
vert-block-size-small-or-larger-than-container-with-min-or-max-content-2b.html
whitespace-and-break.html