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
Comments
cc @hiikezoe |
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
This would produce Though I didn't get involved either in the spec issue or in the bug, so I might be missing something. |
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 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 e.g. for the test |
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
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
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
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
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
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
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
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
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
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
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
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}
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}
…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
…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
…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
…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
I think this is fixed by #30807, although if somebody knowledgable wants to check that the current tests look correct, that would be appreciated. |
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}
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
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:applies when reading the result of
getComputedStyle
at the endpoint (and that0px
,0deg
, or1
is returned rather thannone
).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 agetComputedStyle
result ofnone
or of the appropriate non-none
value. Some of them test an underlying value ofnone
with an addnone
at one of the endpoints. The tests assert that the result isnone
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
The text was updated successfully, but these errors were encountered: