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

Reply via email to