Uncleared part: What is the expected behavior for "animation-timeline: none;" and "animation-timeline: unknown-timeline", for a CSS animation. There are 4 cases: 1. set `animation-timeline: none` initially 2. set `animation-timeline: unknown-timeline` initially 3. change `animation-timeline` from a scroll-timeline name to none 4. change `animation-timeline` from a scroll-timeline name to unknown-timeline Basically, we set the `Animation::mTimeline` to null for these cases. But do we have to discard the CSS animation with a null timeline? I just notice there is a wpt test which expects to keep the CSS animation without a timeline to zero time: https://chromium-review.googlesource.com/c/chromium/src/+/2874659/2/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-none.html. And these is another wpt (https://searchfox.org/mozilla-central/rev/97c13320e56884daf14016048e9d2182c880f8a9/testing/web-platform/tests/scroll-animations/css/at-scroll-timeline-dynamic.tentative.html#174-196) which expects the CSS animations with null timeline (case 3 and case 4) have no effect (e.g. this may be caused by the unresolved current time or by discarding the CSS animation). So now I'm confused about these cases. Should we keep these null-timeline CSS animations (i.e. still generate the CSSAnimation objects) but just make sure they are at zero time, or should we just discard them by returning null CSSAnimation object in UpdateAnimations()? Or maybe we have to use the previous progress in case 3 and case 4 based on web-animation-2 (https://drafts.csswg.org/web-animations/#setting-the-timeline) Note: I guess case 1 and case 2 are different from case 3 and case 4. case 3 and case 4 are changed from a non-null timeline to a null timeline, so they go into the procedure of setting a new timeline. However, case 1 and case 2 are something like setting a null timeline to a null timeline, so they are no-op in the procedure of setting a new timeline.
Bug 1774060 Comment 3 Edit History
Note: The actual edited comment in the bug view page will always show the original commenter’s name and original timestamp.
Uncleared part: Hi Brian, sorry for bothering you about this. I guess you may know more about this: What is the expected behavior for "animation-timeline: none;" and "animation-timeline: unknown-timeline", for a CSS animation. There are 4 cases: 1. set `animation-timeline: none` initially 2. set `animation-timeline: unknown-timeline` initially 3. change `animation-timeline` from a scroll-timeline name to none 4. change `animation-timeline` from a scroll-timeline name to unknown-timeline Basically, we set the `Animation::mTimeline` to null for these cases. But do we have to discard the CSS animation with a null timeline? I just notice there is a wpt test which expects to keep the CSS animation without a timeline to zero time: https://chromium-review.googlesource.com/c/chromium/src/+/2874659/2/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-none.html. And these is another wpt (https://searchfox.org/mozilla-central/rev/97c13320e56884daf14016048e9d2182c880f8a9/testing/web-platform/tests/scroll-animations/css/at-scroll-timeline-dynamic.tentative.html#174-196) which expects the CSS animations with null timeline (case 3 and case 4) have no effect (e.g. this may be caused by the unresolved current time or by discarding the CSS animation). So now I'm confused about these cases. Should we keep these null-timeline CSS animations (i.e. still generate the CSSAnimation objects) but just make sure they are at zero time, or should we just discard them by returning null CSSAnimation object in UpdateAnimations()? Or maybe we have to use the previous progress in case 3 and case 4 based on web-animation-2 (https://drafts.csswg.org/web-animations/#setting-the-timeline) Note: I guess case 1 and case 2 are different from case 3 and case 4. case 3 and case 4 are changed from a non-null timeline to a null timeline, so they go into the procedure of setting a new timeline. However, case 1 and case 2 are something like setting a null timeline to a null timeline, so they are no-op in the procedure of setting a new timeline.
Uncleared part (Copied from the comments in the patch): Hi Brian, sorry for bothering you about this. I guess you may know more about this: What is the expected behavior for "animation-timeline: none;" and "animation-timeline: unknown-timeline", for a CSS animation. There are 4 cases: 1. set `animation-timeline: none` initially 2. set `animation-timeline: unknown-timeline` initially 3. change `animation-timeline` from a scroll-timeline name to none 4. change `animation-timeline` from a scroll-timeline name to unknown-timeline Basically, we set the `Animation::mTimeline` to null for these cases. But do we have to discard the CSS animation with a null timeline? I just notice there is a wpt test which expects to keep the CSS animation without a timeline to zero time: https://chromium-review.googlesource.com/c/chromium/src/+/2874659/2/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-none.html. And these is another wpt (https://searchfox.org/mozilla-central/rev/97c13320e56884daf14016048e9d2182c880f8a9/testing/web-platform/tests/scroll-animations/css/at-scroll-timeline-dynamic.tentative.html#174-196) which expects the CSS animations with null timeline (case 3 and case 4) have no effect (e.g. this may be caused by the unresolved current time or by discarding the CSS animation). So now I'm confused about these cases. Should we keep these null-timeline CSS animations (i.e. still generate the CSSAnimation objects) but just make sure they are at zero time, or should we just discard them by returning null CSSAnimation object in UpdateAnimations()? Or maybe we have to use the previous progress in case 3 and case 4 based on web-animation-2 (https://drafts.csswg.org/web-animations/#setting-the-timeline) Note: I guess case 1 and case 2 are different from case 3 and case 4. case 3 and case 4 are changed from a non-null timeline to a null timeline, so they go into the procedure of setting a new timeline. However, case 1 and case 2 are something like setting a null timeline to a null timeline, so they are no-op in the procedure of setting a new timeline.
Uncleared part (Copied from the comments in the patch): Hi Brian, sorry for bothering you about this. I guess you may know more about this: What is the expected behavior for "animation-timeline: none;" and "animation-timeline: unknown-timeline", for a CSS animation. There are 4 cases: 1. set `animation-timeline: none` initially 2. set `animation-timeline: unknown-timeline` initially 3. change `animation-timeline` from a scroll-timeline name to none 4. change `animation-timeline` from a scroll-timeline name to unknown-timeline Basically, we set the `Animation::mTimeline` to null for these cases. But do we have to discard the CSS animation with a null timeline? I just notice there is a wpt test which expects to keep the CSS animation without a timeline to zero time: https://chromium-review.googlesource.com/c/chromium/src/+/2874659/2/third_party/blink/web_tests/external/wpt/scroll-animations/css/animation-timeline-none.html. And these is another wpt (https://searchfox.org/mozilla-central/rev/97c13320e56884daf14016048e9d2182c880f8a9/testing/web-platform/tests/scroll-animations/css/at-scroll-timeline-dynamic.tentative.html#174-196) which expects the CSS animations with null timeline (case 3 and case 4) have no effect (e.g. this may be caused by the unresolved current time or by discarding the CSS animation). So now I'm confused about these cases. Should we keep these null-timeline CSS animations (i.e. still generate the CSSAnimation objects) but just make sure they are at zero time, or should we just discard them by returning null CSSAnimation object in UpdateAnimations()? Or maybe we have to use the previous progress in case 3 and case 4 based on web-animation-2 (https://drafts.csswg.org/web-animations/#setting-the-timeline) Note: I guess case 1 and case 2 are different from case 3 and case 4. Case 3 and case 4 are changed from a non-null timeline to a null timeline, so they go into the procedure of setting a new timeline. However, case 1 and case 2 are something like setting a null timeline to a null timeline, so they are no-op in the procedure of setting a new timeline.