The tests reflects changes made in D216793 and D240317 and put together in
this patch to avoid failing tests in one patch and passing them again in
the next.
Differential Revision: https://phabricator.services.mozilla.com/D250473
This patch removes `if (os == "android") and fission: [OK, TIMEOUT]` annotations
for grid WPTs. These annotations are no longer necessary, and their removal
helps identify genuine test failures more effectively.
Differential Revision: https://phabricator.services.mozilla.com/D247846
Here are the modification to those reftests in our reftest framework. In these
sub-tests, the grid containers' widths become the same as their items' width,
and Firefox now has the same behavior as Google Chrome.
- `grid-auto-min-sizing-min-content-min-size-002-ref.html`: test 7, 8, and 9.
- `grid-auto-min-sizing-min-content-min-size-004-ref.html`: test 4 and 6.
- `grid-auto-min-sizing-transferred-size-002-ref.html`: test 8, 12, and 13.
- `grid-auto-min-sizing-transferred-size-004-ref.html`: test 4 and 6.
- `grid-min-content-min-sizing-transferred-size-002-ref.html`: test 8, 12, and 13.
- `grid-min-content-min-sizing-transferred-size-004-ref.html`: test 4 and 6.
Note: `grid-auto-min-sizing-transferred-size-002.html` is marked as `fails`, and
this patch just change those sub-tests that have behavior change introduced by
this bug.
Differential Revision: https://phabricator.services.mozilla.com/D246467
This adjusts layout/reftests/css-grid/grid-flex-min-sizing-002.html. This test
file depends on a lot of incorrect behavior, however it is still useful to
determine changes in Firefox's behavior.
This separates the case that has changed behavior (class g8, only ref changed)
into a separate test file so that any new changes in behavior found by
layout/reftests/css-grid/grid-flex-min-sizing-002.html will still be caught.
This also enables layout.css.grid-flex-spanning-items-intrinsic-sizing.enabled
for appropriate WPT. See https://bugzilla.mozilla.org/1956610 for enabling
this pref on all channels.
Differential Revision: https://phabricator.services.mozilla.com/D243179
The old "orthogonal limit" in ReflowInput was a rather ad hoc mechanism created
during the early implementation of writing modes, to avoid reflowing orthogonal
flows with unconstrained inline size. The spec has since been clarified to describe
the expected behavior in more detail, and we can dispense with the orthogonal-limit
concept and instead implement the constraints called for in the spec.
With this, we pass all the css-writing-modes/available-size-* tests (as well as
fixing a couple of other testcases that are dependent on this behavior).
Differential Revision: https://phabricator.services.mozilla.com/D241117
Both Chrome and Safari pass the test, while Firefox fails it currently. Firefox
is expected to pass it after Bug 1481876 is fixed.
Differential Revision: https://phabricator.services.mozilla.com/D240554
That is, after this patch, the BRFrame's inline-size becomes zero.
This patch is based on the previous attempt [1] in this bug, and removes the
code added in Bug 1242781.
The test_bug1216483.html change is worth an explanation. Each sub-test verifies
the blinking cursor (caret) position after pressing down arrow key in an
contenteditable container. The expected position is to the right of the letter
"a". Before this patch, the `(anchorNode, anchorOffset)` was
`("element with '.second' style", 1)`. After this patch, it becomes
`("a", 1)`, which is a valid representation of the caret position and
matches Google Chrome's behavior.
[1] https://hg.mozilla.org/mozilla-central/rev/c3f1ab75ea51
Differential Revision: https://phabricator.services.mozilla.com/D238162
That is, after this patch, the BRFrame's inline-size becomes zero.
This patch is based on the previous attempt [1] in this bug, and removes the
code added in Bug 1242781.
The test_bug1216483.html change is worth an explanation. Each sub-test verifies
the blinking cursor (caret) position after pressing down arrow key in an
contenteditable container. The expected position is to the right of the letter
"a". Before this patch, the `(anchorNode, anchorOffset)` was
`("element with '.second' style", 1)`. After this patch, it becomes
`("a", 1)`, which is a valid representation of the caret position and
matches Google Chrome's behavior.
[1] https://hg.mozilla.org/mozilla-central/rev/c3f1ab75ea51
Differential Revision: https://phabricator.services.mozilla.com/D238162
This patch is based on the previous attempt [1] in this bug, and removes the
code added in Bug 1242781.
The test_bug1216483.html change is worth an explanation. Each sub-test verifies
the blinking cursor (caret) position after pressing down arrow key in an
contenteditable container. The expected position is to the right of the letter
"a". Before this patch, the `(anchorNode, anchorOffset)` was
`("element with '.second' style", 1)`. After this patch, it becomes
`("a", 1)`, which is a valid representation of the caret position and
matches Google Chrome's behavior.
[1] https://hg.mozilla.org/mozilla-central/rev/c3f1ab75ea51
Differential Revision: https://phabricator.services.mozilla.com/D238162
The pref layout.css.grid-flex-spanning-items-intrinsic-sizing.enabled is
expected to be removed once these regressions are fixed. This should be a good
compromise between maintaining the code from bug 1916849, and avoiding
breakage/extra backouts.
Differential Revision: https://phabricator.services.mozilla.com/D235089
This has a couple unfortunate parts to its implementation. In particular, the
adjustment to ShouldApplyAutoMinSize are difficult to explain other than that
function doesn't actually calculate if the minimum contribution of an item is
content-based, but rather checks if the caller should also call MinSize or not.
Part of this calculation includes checking the min-size-auto of the item, but
some are just matching checks for special cases in MinSize.
This could be optimized, and should definitely be refactored to simplify how
all of this is computed.
This still doesn't quite correctly handle all cases for items spanning flex
tracks and tracks with a definite length, but that case is already not handled
correctly so this won't introduce any regressions for that case unless the
expected result is that such an item will have an intrinsic size of zero. In
that case, simply not calculating anything would accidentally be the correct
value, and this new calculation may or may not produce that result.
Differential Revision: https://phabricator.services.mozilla.com/D230829
This is the first part of the bug. A clarification in the spec states
that a grid item spanning multiple tracks, which include a flexible
track, should not participate in auto min sizing calculation and should
have a width of 0.
https://w3c.github.io/csswg-drafts/css-grid-1/#min-size-auto
For the reftest, the previous overrides are removed as the correct
behaviour is now implemented.
Differential Revision: https://phabricator.services.mozilla.com/D160900
Mostly progressions, as expected, but there are two bits that deserve
some attention:
* First there are two table tests that regress (because we were
treating fit-content like auto). However Chromium fails the
non-tentative one also, just in a different way, so I think it's
worth punting on changing table layout and go to the CSSWG to figure
out if "auto" is the desired behavior here.
* Second, there's another test that regresses
(position-absolute-replaced-minmax.html) for the same reason, we used
to treat the size as "auto".
The test that regresses comes from a Chromium crash
(https://bugs.chromium.org/p/chromium/issues/detail?id=1010798) and
the relevant behavior different also affects other intrinsic
keywords, so I don't think we should address it here, and is unlikely
to be a common case in the wild if we hadn't hit this before with
other unprefixed keywords IMO.
In any case I filed
https://bugzilla.mozilla.org/show_bug.cgi?id=1732780 for this
behavior difference to investigate later.
* Third, I removed fit-content from min-{width,height}-invalid. They
are valid sizing keywords in css-sizing-5, and they apply to these
properties. Other browsers also parse it.
Differential Revision: https://phabricator.services.mozilla.com/D126726