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

Reply via email to