[webkit-changes] [WebKit/WebKit] 38829f: [scroll-animations] WPT test `scroll-animations/cs...
Antoine Quint
noreply at github.com
Mon Feb 10 02:40:24 PST 2025
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 38829fba9da0e5a1389d8873d91aa9926e776202
https://github.com/WebKit/WebKit/commit/38829fba9da0e5a1389d8873d91aa9926e776202
Author: Antoine Quint <graouts at webkit.org>
Date: 2025-02-10 (Mon, 10 Feb 2025)
Changed paths:
M LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-ignored.tentative-expected.txt
M Source/WebCore/animation/CSSAnimation.cpp
M Source/WebCore/animation/CSSAnimation.h
Log Message:
-----------
[scroll-animations] WPT test `scroll-animations/css/animation-timeline-ignored.tentative.html` is a failure
https://bugs.webkit.org/show_bug.cgi?id=287393
Reviewed by Tim Nguyen.
The single remaining failure in this test first sets a running animation's timeline to `null`,
runs some assertions, and then sets the `animation-timeline` property to another value. The
purpose of this test is to check that setting the `animation-timeline` property will have no
effect since the related Web Animations API was used, and uses the `pending` property to determine
that instead of looking at the `timeline` property itself.
While this isn't the most direct approach, it is perfectly valid and we would fail it because
the first call to set the null timeline would reset the playing state of the animation, and while
we didn't reset a timeline when the `animation-timeline` property was set afterwards, we would
trigger a call to `CSSAnimation::syncPropertiesWithBackingAnimation()`, correctly, which would
make sure that all non-overridden animation CSS properties were updated.
In the case of the `animation-play-state` property, we would only look at the playing state of the
animation to determine whether it matched the value held by the CSS property. In this case, the
`animation-play-state` property was set to its default `playing` value and our animation was not
in the running state due to not having a timeline. As such, we would yield a new call to `play()`
to reset this discrepancy.
To address this, we now keep track of the last `animation-play-state` value that was used to toggle
the playback state so that we only react to that value changing via style resolution.
* LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/animation-timeline-ignored.tentative-expected.txt:
* Source/WebCore/animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):
* Source/WebCore/animation/CSSAnimation.h:
Canonical link: https://commits.webkit.org/290148@main
To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications
More information about the webkit-changes
mailing list