Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8740ea8994be7fb3f7b14502e4ba9b61ef9479f6
https://github.com/WebKit/WebKit/commit/8740ea8994be7fb3f7b14502e4ba9b61ef9479f6
Author: Antoine Quint <[email protected]>
Date: 2025-11-06 (Thu, 06 Nov 2025)
Changed paths:
M LayoutTests/resources/ui-helper.js
M
LayoutTests/webanimations/threaded-animations/scroll-driven-animations-expected.txt
M
LayoutTests/webanimations/threaded-animations/scroll-driven-animations.html
M Source/WebCore/platform/animation/TimingFunction.h
M Source/WebKit/SourcesCocoa.txt
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h
M Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm
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
A Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationUtilities.cpp
A Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationUtilities.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.mm
M Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h
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/WebKit.xcodeproj/project.pbxproj
M Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl
M Tools/TestRunnerShared/UIScriptContext/UIScriptController.h
M Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.h
M Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm
Log Message:
-----------
[threaded-animations] add testing support for remote layer tree animations
https://bugs.webkit.org/show_bug.cgi?id=302077
rdar://164164711
Reviewed by Simon Fraser.
In order to be able to test the state of animations associated with remote layer
tree nodes, we add a new `UIScriptController.animationStackForLayerWithID()`
function
which we wrap as `UIHelper.remoteAnimationStackForElement()` in JavaScript.
To that end we add a suite of methods to convert objects related to remote layer
tree animations to JSON representations encoded as a string for transport.
Note that we haven't yet added support for producing JSON representations for
filters
and offset paths. Those will be implemented as necessary as further tests are
developed.
* LayoutTests/resources/ui-helper.js:
(window.UIHelper.remoteAnimationStackForElement):
*
LayoutTests/webanimations/threaded-animations/scroll-driven-animations-expected.txt:
* LayoutTests/webanimations/threaded-animations/scroll-driven-animations.html:
* Source/WebCore/platform/animation/TimingFunction.h:
* Source/WebKit/SourcesCocoa.txt:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewPrivateForTesting.h:
* Source/WebKit/UIProcess/API/Cocoa/WKWebViewTesting.mm:
(-[WKWebView _animationStackForLayerWithID:]):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimation.cpp:
(WebKit::RemoteAnimation::toJSONForTesting const):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimation.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationStack.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationStack.mm:
(WebKit::RemoteAnimationStack::toJSONForTesting const):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationTimeline.cpp:
(WebKit::RemoteAnimationTimeline::RemoteAnimationTimeline):
(WebKit::RemoteAnimationTimeline::toJSONForTesting const):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationTimeline.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationUtilities.cpp: Added.
(WebKit::toStringForTesting):
(WebKit::toJSONForTesting):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteAnimationUtilities.h: Added.
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(WebKit::RemoteLayerTreeDrawingAreaProxy::animationStackForNodeWithIDForTesting
const):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.h:
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::animationStackForNodeWithIDForTesting const):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::setAcceleratedEffectsAndBaseValues):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.h:
(WebKit::RemoteScrollingCoordinatorProxy::animationStackForNodeWithIDForTesting
const):
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.h:
* Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteLayerTreeEventDispatcher.mm:
(WebKit::RemoteLayerTreeEventDispatcher::animationStackForNodeWithIDForTesting
const):
*
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.h:
*
Source/WebKit/UIProcess/RemoteLayerTree/mac/RemoteScrollingCoordinatorProxyMac.mm:
(WebKit::RemoteScrollingCoordinatorProxyMac::animationStackForNodeWithIDForTesting
const):
* Source/WebKit/WebKit.xcodeproj/project.pbxproj:
* Tools/TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
* Tools/TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::animationStackForLayerWithID const):
* Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.h:
* Tools/WebKitTestRunner/cocoa/UIScriptControllerCocoa.mm:
(WTR::UIScriptControllerCocoa::animationStackForLayerWithID const):
Canonical link: https://commits.webkit.org/302673@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications