Open Bug 1840438 Opened 1 year ago Updated 1 year ago

WPT failures in css/motion/animation/offset-interpolation.html

Categories

(Core :: CSS Transitions and Animations, defect)

defect

Tracking

()

People

(Reporter: dholbert, Unassigned)

References

(Blocks 1 open bug)

Details

We fail 6 subtests (2 groups of 3 subtests) in this WPT test:
https://wpt.fyi/results/css/motion/animation/offset-interpolation.html
http://wpt.live/css/motion/animation/offset-interpolation.html

At first glance, it looks like the test is exercising the same interpolation using CSS Transitions, CSS Animations, and Web Animations. We fail this particular set of subtests specifically for CSS Transitions, and we're fine for the other forms of animation.

It's not obvious to me whether the failures are Firefox bugs or test bugs.

FIRST THREE FAILURES:

CSS Transitions: property <offset> from [path("M0 200H 700") 500px 800deg] to [path("M0 300H 700 Z") 600px 900deg]
at (-0.3)
expected "path ( " M 0 200 H 700 " ) 470px 770deg " but got "path ( " M 0 300 H 700 Z " ) 470px 770deg "

at (0)
expected "path ( " M 0 200 H 700 " ) 500px 800deg " but got "path ( " M 0 300 H 700 Z " ) 500px 800deg "

at (0.3)
expected "path ( " M 0 200 H 700 " ) 530px 830deg " but got "path ( " M 0 300 H 700 Z " ) 530px 830deg "

These failures are all for the path() component, i.e . the offset-path sub-property of the offset shorthand property. The test seems to be expecting us to hold the start value of M 0 200 H 700 until 50% of the way through the transition, but we're not doing that; we're immediately swapping to the final value for this sub-property.

I think this may be a remnant of (or in the same spirit as) bug 1822203? The test seems to be expecting a 50% flip, but for now that's not what the spec requires (per bug 1822203 comment 4 and subsequent comments).

FINAL THREE FAILURES:

CSS Transitions: property <offset> from [path("M0 0H 200") 500px auto] to [path("M0 0H 300") 600px 0deg]
at (-0.3)
expected "path ( " M 0 0 H 170 " ) 470px " but got "path ( " M 0 0 H 170 " ) 470px 0deg "

at (0)
expected "path ( " M 0 0 H 200 " ) 500px " but got "path ( " M 0 0 H 200 " ) 500px 0deg "

at (0.3)
expected "path ( " M 0 0 H 230 " ) 530px " but got "path ( " M 0 0 H 230 " ) 530px 0deg "

These three failures are just about the "0deg" value that we're including in each value, which I think is from offset-rotate which is going from auto to 0deg.

Similar to above: it looks like we're treating that as a non-interpolatable value change, and so we're switching immediately to the final value, but the test is expecting us to do a 50% flip (i.e. it's expecting us to omit the angle and have it be implicitly auto until 50% of the way through the transition). As above, that might be a bug in the tests' expectations...

Depends on: 1822203

It looks like the test-expectations here were set via the work that was associated with bug 1822203. So I think the "revert" patch that landed upstream there was just incomplete. I'll file a wpt github issue.

Digging through github history past the discrete-transition-related changes, I get to this version of the test:
https://github.com/web-platform-tests/wpt/blame/ad172b15c6091ba467d23de9a5f84a58d173e429/css/motion/animation/offset-interpolation.html

It's nearly the same as the current version of the test, except its expectations match our outcome for these tests.

We passed that version, according to this wpt.fyi link (using the above^ git-commit first 10 digits in the sha URL param):
https://wpt.fyi/results/css/motion/animation/offset-interpolation.html?sha=ad172b15c6&label=master

I pinged @josepharhar, the Chrome developer who was working on reverting the test-expectations for this discrete-transition stuff, in https://github.com/web-platform-tests/wpt/issues/39871#issuecomment-1607984759

They replied with a PR, which does indeed make this test pass in Firefox.
Here's wpt.fyi showing the test results with that PR, with us passing 36/36 subtests:
https://wpt.fyi/results/css/motion/animation/offset-interpolation.html?sha=2a95428b48&label=experimental&label=pr_head&product=chrome&product=firefox&view=interop

You need to log in before you can comment on or make changes to this bug.