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