Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 287aac9eceb10e0010a42e8a4d7116adcb2d6b88
      
https://github.com/WebKit/WebKit/commit/287aac9eceb10e0010a42e8a4d7116adcb2d6b88
  Author: Antoine Quint <[email protected]>
  Date:   2025-11-02 (Sun, 02 Nov 2025)

  Changed paths:
    M Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml
    M Source/WTF/wtf/PlatformEnable.h
    M Source/WTF/wtf/PlatformEnableCocoa.h
    M Source/WebCore/animation/AcceleratedEffectStackUpdater.cpp
    M Source/WebCore/animation/AcceleratedEffectStackUpdater.h
    M Source/WebCore/animation/AnimationTimeline.cpp
    M Source/WebCore/animation/AnimationTimeline.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/KeyframeEffectStack.cpp
    M Source/WebCore/animation/KeyframeEffectStack.h
    M Source/WebCore/animation/StyleOriginatedTimelinesController.cpp
    M Source/WebCore/css/scripts/process-css-properties.py
    M Source/WebCore/page/scrolling/ScrollingThread.cpp
    M Source/WebCore/page/scrolling/ScrollingThread.h
    M Source/WebCore/platform/animation/AcceleratedEffect.cpp
    M Source/WebCore/platform/animation/AcceleratedEffect.h
    M Source/WebCore/platform/animation/AcceleratedEffectStack.cpp
    M Source/WebCore/platform/animation/AcceleratedEffectStack.h
    M Source/WebCore/platform/animation/AcceleratedEffectValues.cpp
    M Source/WebCore/platform/animation/AcceleratedEffectValues.h
    M Source/WebCore/platform/animation/AcceleratedTimeline.cpp
    M Source/WebCore/platform/animation/AcceleratedTimeline.h
    M Source/WebCore/platform/animation/ProgressResolutionData.h
    M Source/WebCore/platform/animation/TimelineIdentifier.h
    M Source/WebCore/platform/animation/values/AcceleratedEffectOffsetAnchor.cpp
    M Source/WebCore/platform/animation/values/AcceleratedEffectOffsetAnchor.h
    M 
Source/WebCore/platform/animation/values/AcceleratedEffectOffsetDistance.cpp
    M Source/WebCore/platform/animation/values/AcceleratedEffectOffsetDistance.h
    M 
Source/WebCore/platform/animation/values/AcceleratedEffectOffsetPosition.cpp
    M Source/WebCore/platform/animation/values/AcceleratedEffectOffsetPosition.h
    M Source/WebCore/platform/animation/values/AcceleratedEffectOffsetRotate.cpp
    M Source/WebCore/platform/animation/values/AcceleratedEffectOffsetRotate.h
    M Source/WebCore/platform/animation/values/AcceleratedEffectOpacity.cpp
    M Source/WebCore/platform/animation/values/AcceleratedEffectOpacity.h
    M Source/WebCore/platform/animation/values/AcceleratedEffectTransformBox.h
    M 
Source/WebCore/platform/animation/values/AcceleratedEffectTransformOrigin.cpp
    M 
Source/WebCore/platform/animation/values/AcceleratedEffectTransformOrigin.h
    M Source/WebCore/platform/graphics/GraphicsLayer.cpp
    M Source/WebCore/platform/graphics/GraphicsLayer.h
    M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
    M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h
    M Source/WebCore/platform/graphics/ca/PlatformCALayer.h
    M Source/WebCore/platform/graphics/ca/PlatformCALayer.mm
    M Source/WebCore/rendering/RenderLayerBacking.cpp
    M Source/WebCore/rendering/RenderLayerBacking.h
    M Source/WebCore/style/values/color/StyleOpacity.h
    M Source/WebCore/style/values/motion/StyleOffsetAnchor.cpp
    M Source/WebCore/style/values/motion/StyleOffsetAnchor.h
    M Source/WebCore/style/values/motion/StyleOffsetDistance.h
    M Source/WebCore/style/values/motion/StyleOffsetPosition.cpp
    M Source/WebCore/style/values/motion/StyleOffsetPosition.h
    M Source/WebCore/style/values/motion/StyleOffsetRotate.cpp
    M Source/WebCore/style/values/motion/StyleOffsetRotate.h
    M Source/WebKit/Scripts/webkit/messages.py
    M Source/WebKit/Shared/RemoteLayerTree/LayerProperties.h
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm
    M Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h
    M Source/WebKit/Shared/WTFArgumentCoders.serialization.in
    M Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimation.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimation.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationStack.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationStack.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationTimeline.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationTimeline.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteMonotonicTimeline.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteMonotonicTimeline.h
    M 
Source/WebKit/UIProcess/RemoteLayerTree/RemoteMonotonicTimelineRegistry.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteMonotonicTimelineRegistry.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimeline.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimeline.h
    M 
Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimelineRegistry.cpp
    M 
Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimelineRegistry.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.h
    M 
Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.h
    M 
Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm
    M 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h
    M 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.mm
    M 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.h
    M 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.mm
    M Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h
    M Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm

  Log Message:
  -----------
  [threaded-animations] introduce individual run-time flags for scroll-driven 
and time-based animations in the remote layer tree
https://bugs.webkit.org/show_bug.cgi?id=301787
rdar://163826102

Reviewed by Sam Weinig.

While the remote layer tree animation support being built behind the 
`ThreadedAnimationResolutionEnabled`
flag supports both scroll-driven and time-based animations, it will be 
desirable to control enablement
of the two animation types separately.

We thus remove `ThreadedAnimationResolutionEnabled` in favor of the combination 
of `ThreadedScrollDrivenAnimationsEnabled`
and `ThreadedTimeBasedAnimationsEnabled`. For now, call sites where the former 
setting was checked have been replaced with
an OR of both the new flags, but selectively we will use individual settings 
where it makes sense.

Finally, we also renamed the built-time flag 
`ENABLE_THREADED_ANIMATION_RESOLUTION` to just `ENABLE_THREADED_ANIMATIONS`.

* Source/WTF/Scripts/Preferences/UnifiedWebPreferences.yaml:
* Source/WTF/wtf/PlatformEnable.h:
* Source/WTF/wtf/PlatformEnableCocoa.h:
* Source/WebCore/animation/AcceleratedEffectStackUpdater.cpp:
* Source/WebCore/animation/AcceleratedEffectStackUpdater.h:
* Source/WebCore/animation/AnimationTimeline.cpp:
(WebCore::AnimationTimeline::AnimationTimeline):
* Source/WebCore/animation/AnimationTimeline.h:
* Source/WebCore/animation/AnimationTimelinesController.cpp:
* Source/WebCore/animation/AnimationTimelinesController.h:
* Source/WebCore/animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::applyPendingAcceleratedAnimations):
* Source/WebCore/animation/DocumentTimeline.h:
* Source/WebCore/animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::transformFunctionListPrefix const):
(WebCore::KeyframeEffect::updateEffectStackMembership):
(WebCore::KeyframeEffect::didChangeTargetStyleable):
(WebCore::KeyframeEffect::isRunningAccelerated const):
(WebCore::KeyframeEffect::canBeAccelerated const):
(WebCore::KeyframeEffect::preventsAcceleration const):
(WebCore::KeyframeEffect::updateAcceleratedActions):
(WebCore::KeyframeEffect::addPendingAcceleratedAction):
(WebCore::KeyframeEffect::updateAcceleratedAnimationIfNecessary):
(WebCore::KeyframeEffect::animationDidFinish):
(WebCore::KeyframeEffect::animationWasCanceled):
(WebCore::KeyframeEffect::willChangeRenderer):
(WebCore::KeyframeEffect::animationSuspensionStateDidChange):
(WebCore::KeyframeEffect::applyPendingAcceleratedActionsOrUpdateTimingProperties):
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):
(WebCore::KeyframeEffect::ticksContinuouslyWhileActive const):
(WebCore::KeyframeEffect::setComposite):
(WebCore::KeyframeEffect::effectStackNoLongerAllowsAccelerationDuringAcceleratedActionApplication):
(WebCore::KeyframeEffect::abilityToBeAcceleratedDidChange):
(WebCore::KeyframeEffect::CanBeAcceleratedMutationScope::CanBeAcceleratedMutationScope):
(WebCore::KeyframeEffect::CanBeAcceleratedMutationScope::~CanBeAcceleratedMutationScope):
(WebCore::KeyframeEffect::lastStyleChangeEventStyleDidChange):
(WebCore::KeyframeEffect::threadedAnimationsEnabled const):
(WebCore::KeyframeEffect::updateAssociatedThreadedEffectStack):
(WebCore::KeyframeEffect::threadedAnimationResolutionEnabled const): Deleted.
* Source/WebCore/animation/KeyframeEffect.h:
* Source/WebCore/animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::hasAcceleratedEffects const):
* Source/WebCore/animation/KeyframeEffectStack.h:
* Source/WebCore/animation/StyleOriginatedTimelinesController.cpp:
* Source/WebCore/css/scripts/process-css-properties.py:
(GenerateCSSPropertyNames):
* Source/WebCore/page/scrolling/ScrollingThread.cpp:
* Source/WebCore/page/scrolling/ScrollingThread.h:
* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
* Source/WebCore/platform/animation/AcceleratedEffect.h:
* Source/WebCore/platform/animation/AcceleratedEffectStack.cpp:
* Source/WebCore/platform/animation/AcceleratedEffectStack.h:
* Source/WebCore/platform/animation/AcceleratedEffectValues.cpp:
* Source/WebCore/platform/animation/AcceleratedEffectValues.h:
* Source/WebCore/platform/animation/AcceleratedTimeline.cpp:
* Source/WebCore/platform/animation/AcceleratedTimeline.h:
* Source/WebCore/platform/animation/ProgressResolutionData.h:
* Source/WebCore/platform/animation/TimelineIdentifier.h:
* Source/WebCore/platform/animation/values/AcceleratedEffectOffsetAnchor.cpp:
* Source/WebCore/platform/animation/values/AcceleratedEffectOffsetAnchor.h:
* Source/WebCore/platform/animation/values/AcceleratedEffectOffsetDistance.cpp:
* Source/WebCore/platform/animation/values/AcceleratedEffectOffsetDistance.h:
* Source/WebCore/platform/animation/values/AcceleratedEffectOffsetPosition.cpp:
* Source/WebCore/platform/animation/values/AcceleratedEffectOffsetPosition.h:
* Source/WebCore/platform/animation/values/AcceleratedEffectOffsetRotate.cpp:
* Source/WebCore/platform/animation/values/AcceleratedEffectOffsetRotate.h:
* Source/WebCore/platform/animation/values/AcceleratedEffectOpacity.cpp:
* Source/WebCore/platform/animation/values/AcceleratedEffectOpacity.h:
* Source/WebCore/platform/animation/values/AcceleratedEffectTransformBox.h:
* Source/WebCore/platform/animation/values/AcceleratedEffectTransformOrigin.cpp:
* Source/WebCore/platform/animation/values/AcceleratedEffectTransformOrigin.h:
* Source/WebCore/platform/graphics/GraphicsLayer.cpp:
* Source/WebCore/platform/graphics/GraphicsLayer.h:
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::moveOrCopyAnimations):
(WebCore::GraphicsLayerCA::ensureStructuralLayer):
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.h:
* Source/WebCore/platform/graphics/ca/PlatformCALayer.h:
* Source/WebCore/platform/graphics/ca/PlatformCALayer.mm:
* Source/WebCore/rendering/RenderLayerBacking.cpp:
* Source/WebCore/rendering/RenderLayerBacking.h:
* Source/WebCore/style/values/color/StyleOpacity.h:
* Source/WebCore/style/values/motion/StyleOffsetAnchor.cpp:
* Source/WebCore/style/values/motion/StyleOffsetAnchor.h:
* Source/WebCore/style/values/motion/StyleOffsetDistance.h:
* Source/WebCore/style/values/motion/StyleOffsetPosition.cpp:
* Source/WebCore/style/values/motion/StyleOffsetPosition.h:
* Source/WebCore/style/values/motion/StyleOffsetRotate.cpp:
* Source/WebCore/style/values/motion/StyleOffsetRotate.h:
* Source/WebKit/Scripts/webkit/messages.py:
(conditions_for_header):
* Source/WebKit/Shared/RemoteLayerTree/LayerProperties.h:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTree.serialization.in:
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreePropertyApplier.mm:
(WebKit::RemoteLayerTreePropertyApplier::applyPropertiesToLayer):
* Source/WebKit/Shared/RemoteLayerTree/RemoteLayerTreeTransaction.h:
* Source/WebKit/Shared/WTFArgumentCoders.serialization.in:
* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimation.cpp:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimation.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationStack.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationStack.mm:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationTimeline.cpp:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationTimeline.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::threadedAnimationsEnabled const):
(WebKit::RemoteLayerTreeHost::updateLayerTree):
(WebKit::RemoteLayerTreeHost::layerWillBeRemoved):
(WebKit::RemoteLayerTreeHost::threadedAnimationResolutionEnabled const): 
Deleted.
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::~RemoteLayerTreeNode):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteMonotonicTimeline.cpp:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteMonotonicTimeline.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteMonotonicTimelineRegistry.cpp:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteMonotonicTimelineRegistry.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimeline.cpp:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimeline.h:
* 
Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimelineRegistry.cpp:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimelineRegistry.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.cpp:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingTree.h:
* 
Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.h:
* 
Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteScrollingCoordinatorProxyIOS.mm:
(WebKit::RemoteScrollingCoordinatorProxyIOS::displayDidRefresh):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h:
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.mm:
(WebKit::RemoteLayerTreeEventDispatcher::startOrStopDisplayLinkOnMainThread):
(WebKit::RemoteLayerTreeEventDispatcher::didRefreshDisplay):
(WebKit::RemoteLayerTreeEventDispatcher::delayedRenderingUpdateDetectionTimerFired):
(WebKit::RemoteLayerTreeEventDispatcher::waitForRenderingUpdateCompletionOrTimeout):
(WebKit::RemoteLayerTreeEventDispatcher::scrollingTreeWasRecentlyActive):
* 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.h:
* 
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.mm:
(WebKit::RemoteScrollingCoordinatorProxyMac::setRubberBandingInProgressForNode):
(WebKit::RemoteScrollingCoordinatorProxyMac::willCommitLayerAndScrollingTrees):
(WebKit::RemoteScrollingCoordinatorProxyMac::didCommitLayerAndScrollingTrees):
* Source/WebKit/WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::willCommitLayerTree):
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.h:
* Source/WebKit/WebProcess/WebPage/RemoteLayerTree/PlatformCALayerRemote.mm:

Canonical link: https://commits.webkit.org/302451@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to