Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

contradictory tests covering animation of individual transform properties #30377

Closed
dbaron opened this issue Sep 7, 2021 · 5 comments
Closed
Assignees

Comments

@dbaron
Copy link
Member

dbaron commented Sep 7, 2021

While trying to fix test failures in individual transform properties in Chromium in preparation for enabling them, I found a set of tests that I think are contradictory, and I wanted to double check with other folks involved that I'm fixing them in the correct direction.


On the one side, there are the tests that Chromium fails in the files (originally written in #6790 by @ericwilligers):

These tests assert that when animating between a none and a non-none value, the spec's statement that:

When translate, rotate or scale are animating or transitioning, and the from value or to value (but not both) is none, the value none is replaced by the equivalent identity value (0px for translate, 0deg for rotate, 1 for scale).

applies when reading the result of getComputedStyle at the endpoint (and that 0px, 0deg, or 1 is returned rather than none).


On the other side, there are the tests that Gecko fails in the files (originally added in #21000 by @shengha2):

Some of these tests test whether a replace none at one of the endpoints of an animation yields a getComputedStyle result of none or of the appropriate non-none value. Some of them test an underlying value of none with an add none at one of the endpoints. The tests assert that the result is none but Gecko (and Chromium when patched to run interpolation code fully when at endpoints) produce a non-none value.


I think also the tests that Chromium fails in:

fall into the first group in terms of what the current expectations are, despite having been added in the second group.


My impression is that the Gecko results are probably correct for all sets, which would require changes in both Chromium (which hasn't yet shipped these properties -- but that's what I'm working on) and WebKit (which has). I think the spec text is quite clear for the interpolation part and it was also discussed explicitly in w3c/csswg-drafts#3290. However, I don't think I can point to specific spec passages that cover the add and replace parts of this in the second group of tests.

I'm curious if others agree this is the correct direction.

I'm happy to make the necessary changes to the tests if others agree; I think I already have all of the changes written.

cc @birtles @BorisChiou @emilio @graouts @kevers-google

@dbaron dbaron self-assigned this Sep 7, 2021
@emilio
Copy link
Contributor

emilio commented Sep 7, 2021

cc @hiikezoe

@hiikezoe
Copy link
Contributor

hiikezoe commented Sep 7, 2021

I can't think of any reasons why we don't apply the replacement rule for compositions as well. That said, the spec text might be a bit ambiguous about when the replacement should happen.

IIRC, in Gecko it happens during computing interpolations (or additions or accumulations), So

div.animate({ translate: ["none", "100px"] }, { duration: 10000, composite: "add" });
div.animate({ translate: ["none", "none"] },  { duration: 10000, composite: "add" });

This would produce translate: 0px at 0s. If the second animation's composite value is "replace", it would produce "none", FWIW.

Though I didn't get involved either in the spec issue or in the bug, so I might be missing something.

@birtles
Copy link
Contributor

birtles commented Sep 8, 2021

Right, I think there's possibly some confusion about when the replacement described in CSS Transforms 2 happens.

We have a resolution for interpolation behavior in w3c/csswg-drafts#3290 (comment) where I think what we were trying to say is, "You can't just skip interpolation and use the specified values for the endpoints when the progress is 0% / 100% -- you always need to do interpolation".

Web Animations seemingly lets you use the keyframe endpoints "as-is" when the progress is less than 0% or greater than 100% since there's nothing to interpolate with then (see steps 12 and 14 of The effect value of a keyframe effect) however, that procedure uses the computed keyframes so we're still not using specified keyframe endpoint values as-is. Perhaps the promotion of "none" to "0px" needs to happen when we calculate computed keyframes?

Regarding WPT, I believe @BorisChiou fixed some of the tests to align with the above resolution in Gecko bug 1506746 but I don't think that bug covered the *-composition.html files, only the *-interpolation.html files.

However, given the way composition is defined (see step 13 in The effect value of a keyframe effect and Calculating the result of an effect stack) it appears to me the *-composition.html tests are wrong.

e.g. for the test Compositing: property <translate> underlying [none] from replace [0px 40px 60px] to replace [none] at (1) should be [none] in translate-composition.html, in the absence of composition, interpolating from [0px 40px 60px] to [none] at 100% should yield 0px, and so adding the replace composition operator (which is the default anyway) should not change that.

chromium-wpt-export-bot pushed a commit that referenced this issue Sep 15, 2021
Use interpolation at the endpoints of animations, since it's needed to
get the correct axis for animation of the 'rotate' property.

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

Bug: 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 15, 2021
Use interpolation at the endpoints of animations, since it's needed to
get the correct axis for animation of the 'rotate' property.

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

Bug: 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
@dbaron
Copy link
Member Author

dbaron commented Sep 15, 2021

@birtles (and others): Do the test changes in #30807 (which is an auto-generated PR based on my work-in-progress Chromium change) match what you would expect? (I'd at least note that one of the changes in there is the one that @birtles mentioned explicitly.)

chromium-wpt-export-bot pushed a commit that referenced this issue Sep 15, 2021
Use interpolation at the endpoints of animations, since it's needed to
get the correct axis for animation of the 'rotate' property.

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

Bug: 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 16, 2021
Use interpolation at the endpoints of animations, since it's needed to
get the correct axis for animation of the 'rotate' property.

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

Bug: 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 16, 2021
Use interpolation at the endpoints of animations, since it's needed to
get the correct axis for animation of the 'rotate' property.

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

Bug: 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 16, 2021
Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Bug: 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 17, 2021
Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Bug: 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 17, 2021
Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Bug: 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 17, 2021
Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Bug: 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 20, 2021
Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Bug: 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 20, 2021
Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Fixed: 1026169, 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 21, 2021
Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Fixed: 1026169, 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3139948
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923427}
chromium-wpt-export-bot pushed a commit that referenced this issue Sep 21, 2021
Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Fixed: 1026169, 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3139948
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923427}
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue Oct 3, 2021
…imations., a=testonly

Automatic update from web-platform-tests
Use interpolation at the endpoints of animations.

Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
web-platform-tests/wpt#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Fixed: 1026169, 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3139948
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923427}

--

wpt-commits: 30e724ac90157333d34198f0c29131b2e2a6b1da
wpt-pr: 30807
jamienicol pushed a commit to jamienicol/gecko that referenced this issue Oct 4, 2021
…imations., a=testonly

Automatic update from web-platform-tests
Use interpolation at the endpoints of animations.

Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
web-platform-tests/wpt#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Fixed: 1026169, 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3139948
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923427}

--

wpt-commits: 30e724ac90157333d34198f0c29131b2e2a6b1da
wpt-pr: 30807
moz-v2v-gh pushed a commit to mozilla/gecko-dev that referenced this issue Oct 4, 2021
…imations., a=testonly

Automatic update from web-platform-tests
Use interpolation at the endpoints of animations.

Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
web-platform-tests/wpt#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Fixed: 1026169, 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3139948
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923427}

--

wpt-commits: 30e724ac90157333d34198f0c29131b2e2a6b1da
wpt-pr: 30807
jamienicol pushed a commit to jamienicol/gecko that referenced this issue Oct 6, 2021
…imations., a=testonly

Automatic update from web-platform-tests
Use interpolation at the endpoints of animations.

Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
web-platform-tests/wpt#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Fixed: 1026169, 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3139948
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923427}

--

wpt-commits: 30e724ac90157333d34198f0c29131b2e2a6b1da
wpt-pr: 30807
@dbaron
Copy link
Member Author

dbaron commented Oct 19, 2021

I think this is fixed by #30807, although if somebody knowledgable wants to check that the current tests look correct, that would be appreciated.

@dbaron dbaron closed this as completed Oct 19, 2021
Gabisampaio pushed a commit to Gabisampaio/wpt that referenced this issue Nov 18, 2021
Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
web-platform-tests#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Fixed: 1026169, 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3139948
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923427}
mjfroman pushed a commit to mjfroman/moz-libwebrtc-third-party that referenced this issue Oct 14, 2022
Use interpolation at the endpoints of animations (by removing various
optimizations to return the endpoint values at the endpoints), since
it's needed to get the correct axis for animation of the 'rotate'
property, the correct conversion away from a 'none' value at one
endpoint for the 'rotate', 'scale', and 'translate' properties, and
correct list lengths for list-valued properties that can interpolate
between lists of mismatched lengths, whether by repeating to the least
common multiple length (stroke-dasharray) or filling the shorter list
with no-op or zero values (filter, backdrop-filter, box-shadow,
text-shadow, some registered custom properties).

The changes to translate-composition.html and scale-composition.html
cause Firefox to pass the tests whose expectations are being modified,
and thus, like Chrome, pass the entire file (whereas they cause Safari
to fail additional tests).  The test changes are discussed further in
web-platform-tests/wpt#30377 .

The differences between the test expectations for background-image
(where the test expects discrete animation, per the spec) and for
-webkit-mask-image (where the test expects -webkit-cross-fade()) is
rather suspicious, but I've left the difference as-is for now.

Fixed: 1026169, 1180834
Change-Id: I6320b74b0aff29989a748fab1bff78b91426701e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3139948
Reviewed-by: Kevin Ellis <kevers@chromium.org>
Reviewed-by: Anders Hartvoll Ruud <andruud@chromium.org>
Commit-Queue: David Baron <dbaron@chromium.org>
Cr-Commit-Position: refs/heads/main@{#923427}
NOKEYCHECK=True
GitOrigin-RevId: 19620452a45a851f38799bcc2bd5ddb9d5b120ac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants