Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 5637407989f35220eb774158c20490e0a3083904
https://github.com/WebKit/WebKit/commit/5637407989f35220eb774158c20490e0a3083904
Author: Antoine Quint <[email protected]>
Date: 2025-11-19 (Wed, 19 Nov 2025)
Changed paths:
M Source/WebCore/animation/AcceleratedEffectStackUpdater.cpp
M Source/WebCore/animation/AcceleratedEffectStackUpdater.h
M Source/WebCore/animation/AnimationTimelinesController.cpp
M Source/WebCore/animation/AnimationTimelinesController.h
M Source/WebCore/animation/DocumentTimeline.cpp
M Source/WebCore/animation/DocumentTimeline.h
M Source/WebCore/animation/KeyframeEffect.cpp
M Source/WebCore/animation/KeyframeEffect.h
M Source/WebCore/animation/WebAnimation.cpp
M Source/WebCore/dom/Document.cpp
Log Message:
-----------
[threaded-animations] stop scheduling accelerated effect stack updates via
the document timeline
https://bugs.webkit.org/show_bug.cgi?id=302799
rdar://165060139
Reviewed by Simon Fraser.
For historical reasons, scheduling of accelerated animation creation has been
performed via the document
timeline. This does not make sense in the context of multiple timeline types
and the work to accelerate
scroll-driven animations.
While there is more work required to remove all scheduling from
`DocumentTimeline`, we start by moving
the logic relevant to updating the accelerated effect stack to
`AnimationTimelinesController`, using an
entirely separate code path to what has been used for non-threaded accelerated
animations.
* Source/WebCore/animation/AcceleratedEffectStackUpdater.cpp:
(WebCore::AcceleratedEffectStackUpdater::update):
(WebCore::AcceleratedEffectStackUpdater::scheduleUpdateForTarget):
(WebCore::AcceleratedEffectStackUpdater::updateEffectStacks): Deleted.
(WebCore::AcceleratedEffectStackUpdater::updateEffectStackForTarget): Deleted.
* Source/WebCore/animation/AcceleratedEffectStackUpdater.h:
(WebCore::AcceleratedEffectStackUpdater::hasTargetsPendingUpdate const):
* Source/WebCore/animation/AnimationTimelinesController.cpp:
(WebCore::AnimationTimelinesController::runPostRenderingUpdateTasks):
(WebCore::AnimationTimelinesController::scheduleAcceleratedEffectStackUpdateForTarget):
(WebCore::AnimationTimelinesController::updateStaleScrollTimelines): Deleted.
(WebCore::AnimationTimelinesController::acceleratedEffectStackUpdater): Deleted.
(WebCore::AnimationTimelinesController::updateAcceleratedEffectStacks): Deleted.
* Source/WebCore/animation/AnimationTimelinesController.h:
* Source/WebCore/animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::shouldRunUpdateAnimationsAndSendEventsIgnoringSuspensionState
const):
(WebCore::DocumentTimeline::scheduleAcceleratedEffectStackUpdate):
(WebCore::DocumentTimeline::animationAcceleratedRunningStateDidChange):
(WebCore::DocumentTimeline::applyPendingAcceleratedAnimations):
(WebCore::DocumentTimeline::runPostRenderingUpdateTasks): Deleted.
* Source/WebCore/animation/DocumentTimeline.h:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::updateAcceleratedAnimationIfNecessary):
(WebCore::KeyframeEffect::animationSuspensionStateDidChange):
(WebCore::KeyframeEffect::abilityToBeAcceleratedDidChange):
(WebCore::KeyframeEffect::lastStyleChangeEventStyleDidChange):
(WebCore::KeyframeEffect::StackMembershipMutationScope::~StackMembershipMutationScope):
(WebCore::KeyframeEffect::scheduleAssociatedAcceleratedEffectStackUpdate):
(WebCore::KeyframeEffect::updateAssociatedThreadedEffectStack): Deleted.
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/animation/WebAnimation.cpp:
(WebCore::WebAnimation::acceleratedStateDidChange):
* Source/WebCore/dom/Document.cpp:
(WebCore::Document::runPostRenderingUpdateAnimationTasks):
Canonical link: https://commits.webkit.org/303279@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications