Summary: | REGRESSION (r263506): timing of CSS Animation on https://animate.style is incorrect | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Antoine Quint <graouts> | ||||||||
Component: | Animations | Assignee: | Antoine Quint <graouts> | ||||||||
Status: | RESOLVED FIXED | ||||||||||
Severity: | Normal | CC: | anthony.demuylder, dino, simon.fraser, webkit-bug-importer | ||||||||
Priority: | P2 | Keywords: | InRadar | ||||||||
Version: | Safari Technology Preview | ||||||||||
Hardware: | Unspecified | ||||||||||
OS: | Unspecified | ||||||||||
URL: | https://animate.style | ||||||||||
Attachments: |
|
Description
Antoine Quint
2020-08-25 07:59:06 PDT
Created attachment 407189 [details]
Patch
Comment on attachment 407189 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=407189&action=review > Source/WebCore/ChangeLog:11 > + In r263506, we added a way for accelerated animations to adhere to both a timing function set on the > + animation, affecting the timing of the entire animation, as well as a timing function set on individual > + keyframes, affecting the timing of the animation in a given interval. That's a weird way of saying that accelerated animation timing functions were broken. > Source/WebCore/animation/KeyframeEffect.cpp:1662 > Ref<const Animation> KeyframeEffect::backingAnimationForCompositedRenderer() const It's weird that this has to exist, and weird that it returns a Ref<const Animation>. > LayoutTests/webanimations/accelerated-css-animation-with-easing.html:54 > + await new Promise(requestAnimationFrame); > + await new Promise(requestAnimationFrame); > + await new Promise(requestAnimationFrame); I feel like this test will be flakey. (In reply to Simon Fraser (smfr) from comment #3) > Comment on attachment 407189 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=407189&action=review > > > Source/WebCore/ChangeLog:11 > > + In r263506, we added a way for accelerated animations to adhere to both a timing function set on the > > + animation, affecting the timing of the entire animation, as well as a timing function set on individual > > + keyframes, affecting the timing of the animation in a given interval. > > That's a weird way of saying that accelerated animation timing functions > were broken. Not *all* of them, it was required to have more than 2 keyframes and use implicit timing functions on keyframes. > > Source/WebCore/animation/KeyframeEffect.cpp:1662 > > Ref<const Animation> KeyframeEffect::backingAnimationForCompositedRenderer() const > > It's weird that this has to exist, and weird that it returns a Ref<const > Animation>. Agreed. When we remove the legacy animation code (real soon now) we can remove the use of Animation here and use WebAnimation objects instead. > > LayoutTests/webanimations/accelerated-css-animation-with-easing.html:54 > > + await new Promise(requestAnimationFrame); > > + await new Promise(requestAnimationFrame); > > + await new Promise(requestAnimationFrame); > > I feel like this test will be flakey. This was based on webanimations/accelerated-animation-with-easing.html which proved to be solid after some initial issues were ironed out. Created attachment 407388 [details]
Patch for EWS
Created attachment 407393 [details]
Patch
Committed r266241: <https://trac.webkit.org/changeset/266241> *** Bug 218224 has been marked as a duplicate of this bug. *** |