Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b504d00848ba28dc6796db4219fe67af932acb50
https://github.com/WebKit/WebKit/commit/b504d00848ba28dc6796db4219fe67af932acb50
Author: Antoine Quint <[email protected]>
Date: 2025-11-07 (Fri, 07 Nov 2025)
Changed paths:
M
LayoutTests/webanimations/threaded-animations/scroll-timeline-nested-scroller.html
M
LayoutTests/webanimations/threaded-animations/scroll-timeline-root-scroller.html
M Source/WebCore/animation/KeyframeEffect.cpp
Log Message:
-----------
[threaded-animations] scroll-driven animations should remain in the remote
layer tree even at 100% progress
https://bugs.webkit.org/show_bug.cgi?id=302157
rdar://164255640
Reviewed by Simon Fraser.
Scroll-driven animations are currently removed from the remote layer tree once
they reach 100% as at
that point they are in the finished play state [0]. It makes sense to remove
monotonic animations once
they're in the finished state as they won't naturally progress out of that
state, but progress-based
animations may return to the running [1] state by virtue of the scroll position
of the timeline's source
moving backwards.
To address this we add an additional condition in
`KeyframeEffect::isRunningAccelerated()` such that
effects associated with an animation associated with a progress-based timeline
are always considered
to be running as far as acceleration is concerned.
We also update existing tests to scroll to a location where 100% progress would
be reached and check
that a remote layer tree animation is still present. Previously, these tests
would have failed.
[0] https://drafts.csswg.org/web-animations-1/#play-state-finished
[1] https://drafts.csswg.org/web-animations-1/#play-state-running
*
LayoutTests/webanimations/threaded-animations/scroll-timeline-nested-scroller.html:
*
LayoutTests/webanimations/threaded-animations/scroll-timeline-root-scroller.html:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::isRunningAccelerated const):
Canonical link: https://commits.webkit.org/302729@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications