In stretched flex items w/ definite cross size from container & "auto" flex-basis, flex base size should be derived from aspect ratio
Categories
(Core :: Layout: Flexbox, defect, P1)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox83 | --- | verified |
People
(Reporter: dholbert, Assigned: TYLin)
References
(Blocks 1 open bug, Regressed 1 open bug)
Details
Attachments
(6 files, 1 obsolete file)
| Reporter | ||
Comment 1•12 years ago
|
||
| Reporter | ||
Updated•12 years ago
|
| Reporter | ||
Comment 2•12 years ago
|
||
| Reporter | ||
Updated•12 years ago
|
| Reporter | ||
Updated•12 years ago
|
| Reporter | ||
Updated•10 years ago
|
Comment 3•9 years ago
|
||
| Reporter | ||
Comment 4•7 years ago
|
||
Note: Chrome currently agrees with us on the attached testcase, but biesi's working a patch to change this (i.e. to fix their version of this bug). So this might become more of an interop issue soon.
Comment 5•6 years ago
•
|
||
This may also have impact on this test: https://searchfox.org/mozilla-central/source/testing/web-platform/tests/css/css-sizing/aspect-ratio/flex-aspect-ratio-009.tentative.html after introducing aspect-ratio property.
| Comment hidden (obsolete) |
| Assignee | ||
Comment 9•6 years ago
|
||
This change shouldn't change behavior.
SpecifiedCrossSizeIfDefinite() is not needed because if
IsCrossSizeDefinite() is true, we can just use flex item's CrossSize()
directly.
Note: IsCrossSizeDefinite() should probably use the item's writing mode
instead of container's because the item's writing mode should be used in
"sizing phase" per
https://drafts.csswg.org/css-writing-modes-4/#orthogonal-flows. We'll
fix this in the next patch.
Depends on D92670
| Assignee | ||
Comment 10•6 years ago
|
||
Depends on D92671
| Assignee | ||
Comment 11•6 years ago
|
||
In the next part, we are going to use the stretched cross size and the
aspect ratio to resolve flex base size if the pre-requisites are met.
This change shouldn't change behavior (yet).
Depends on D92672
| Assignee | ||
Comment 12•6 years ago
|
||
This is the main patch for this bug. The idea is to always resolve the
flex base size if the pre-requisites of Flex Layout Algorithm Step 3B
are met.
We need to resolve the flex base size before we freeze the flex item.
Otherwise, loading flex-aspect-ratio-img-row-006.html can trigger the
assertion in SetFlexBaseSizeAndMainSize(), because mFlexBaseSize is
always computes to a definite value by ReflowInput if inline axis is the
main axis.
The testcases marked as fails (flexbox-intrinsic-ratio-*) are going to
be removed in bug 1664938 since they are obsolete and incorrect.
Depends on D92673
| Assignee | ||
Comment 13•6 years ago
|
||
In the previous part, we resolve flex base size from the cross size and
the aspect ratio, so we don't need to consider the same thing in
nsIFrame::ComputeSize().
It's effectively reverting
https://hg.mozilla.org/mozilla-central/rev/6683051983ae
Depends on D92674
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
Updated•6 years ago
|
| Assignee | ||
Updated•6 years ago
|
| Assignee | ||
Updated•6 years ago
|
| Assignee | ||
Updated•6 years ago
|
Updated•5 years ago
|
Comment 14•5 years ago
|
||
Comment 15•5 years ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/1f0e2063f733
https://hg.mozilla.org/mozilla-central/rev/2d9b40846671
https://hg.mozilla.org/mozilla-central/rev/ecc3fb708804
https://hg.mozilla.org/mozilla-central/rev/15346eded59c
https://hg.mozilla.org/mozilla-central/rev/e4fdf273d586
Updated•5 years ago
|
Comment 17•5 years ago
|
||
Using the testcase attached here I couldn't reproduce using old Nightly. Reproduced the issue from the dupe bug 1667466 using the testcase attached in the bug on old Nightly before the fix. Also verified that using the testcase from bug 1667466 the issue does not reproduce on Firefox 83.0b10.
Description
•