Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 8f4c548a8aaf7ea0d57c6ab7a69c73339b67bcc7
https://github.com/WebKit/WebKit/commit/8f4c548a8aaf7ea0d57c6ab7a69c73339b67bcc7
Author: Antoine Quint <[email protected]>
Date: 2026-03-28 (Sat, 28 Mar 2026)
Changed paths:
A
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-explicit-and-implicit-keyframes-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-explicit-and-implicit-keyframes-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-explicit-and-implicit-keyframes.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-explicit-and-implicit-keyframes-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-explicit-and-implicit-keyframes-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/scale-explicit-and-implicit-keyframes.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-explicit-and-implicit-keyframes-expected.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-explicit-and-implicit-keyframes-ref.html
A
LayoutTests/imported/w3c/web-platform-tests/css/css-transforms/animation/translate-explicit-and-implicit-keyframes.html
M LayoutTests/platform/glib/TestExpectations
M Source/WebCore/platform/animation/AcceleratedEffect.cpp
M Source/WebCore/platform/graphics/transforms/TransformOperation.h
Log Message:
-----------
[threaded-animations] REGRESSION: animating to an implicit value for
individual transform properties fails to animate
https://bugs.webkit.org/show_bug.cgi?id=310874
rdar://173487467
Reviewed by Simon Fraser.
The `AcceleratedEffect` blending code would only work if we had an explicit
"to" value for a given keyframe interval,
but animations may omit those so that they would work with the underlying
value. We now account for all three cases:
1. explicit "from" and "to" values,
2. implicit "from" value,
3. implicit "to" value.
For the cases where we have implicit values, we also account for the case where
the "to" value can't be read from
an absent base value and we fall back to the identity transform for the given
property.
Running those new tests in repetition also brought to light an issue where we
hit the "Unsafe to ref/deref from
different threads" assertion, so we make `TransformOperation` use
`ThreadSafeRefCounted`.
Tests:
imported/w3c/web-platform-tests/css/css-transforms/animation/rotate-explicit-and-implicit-keyframes.html
imported/w3c/web-platform-tests/css/css-transforms/animation/scale-explicit-and-implicit-keyframes.html
imported/w3c/web-platform-tests/css/css-transforms/animation/translate-explicit-and-implicit-keyframes.html
* LayoutTests/webanimations/threaded-animations/blending/blending-test.js:
Added.
* LayoutTests/webanimations/threaded-animations/blending/rotate-expected.txt:
Added.
* LayoutTests/webanimations/threaded-animations/blending/rotate.html: Added.
* LayoutTests/webanimations/threaded-animations/blending/scale-expected.txt:
Added.
* LayoutTests/webanimations/threaded-animations/blending/scale.html: Added.
*
LayoutTests/webanimations/threaded-animations/blending/translate-expected.txt:
Added.
* LayoutTests/webanimations/threaded-animations/blending/translate.html: Added.
* LayoutTests/platform/glib/TestExpectations:
* Source/WebCore/platform/animation/AcceleratedEffect.cpp:
(WebCore::blend):
* Source/WebCore/platform/graphics/transforms/TransformOperation.h:
Canonical link: https://commits.webkit.org/310146@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications