Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: e1f5a7186f60055bb8e4b682556d73d2576c412e
https://github.com/WebKit/WebKit/commit/e1f5a7186f60055bb8e4b682556d73d2576c412e
Author: Antoine Quint <[email protected]>
Date: 2025-03-04 (Tue, 04 Mar 2025)
Changed paths:
M
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/scroll-timeline-multi-pass.tentative-expected.txt
M
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-dynamic-expected.txt
M Source/WebCore/animation/StyleOriginatedTimelinesController.cpp
Log Message:
-----------
[scroll-animations] WPT test
`scroll-animations/css/view-timeline-dynamic.html` is a failure
https://bugs.webkit.org/show_bug.cgi?id=289084
Reviewed by Anne van Kesteren.
The reason we were failing the first test in the WPT test
`scroll-animations/css/view-timeline-dynamic.html` was that
when a CSS Animation's timeline was changed to an inactive timeline (due to
multiple possible timelines within the scope
defined by a parent element using the `timeline-scope` property) we would fail
to mark that animation's target as dirty
and the timeline change would thus not be observable through the computed style.
To that end, we now catch the case where
`StyleOriginatedTimelinesController::attachAnimation()` would yield an inactive
timeline due to a conflict related to `timeline-scope`, and keep that animation
in `m_cssAnimationsPendingAttachment`
such that it will be re-considered at the end of the style update in
`documentDidResolveStyle()`. At that juncture,
the timeline attachment will be re-considered and the target marked as dirty if
necessary.
However, this fix alone changed the result of the "Animations prefer
non-deferred timelines" test in the WPT test
`scroll-animations/css/timeline-scope.html`. Indeed, the reason we passed that
test was precisely because of our old
behavior where we failed to mark style as dirty in case `timeline-scope`
conflict would yield an inactive timeline.
To keep a passing result for this test we ensure that if we get into such a
conflict, we still consider the current
element for a non-deferred timeline (ie. one that doesn't require
`timeline-scope` to be in scope for this animation
target).
Those combined changes also progressed a part of
`css/scroll-timeline-multi-pass.tentative.html` which no longer
logs an assertion failure through the console.
*
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/scroll-timeline-multi-pass.tentative-expected.txt:
*
LayoutTests/imported/w3c/web-platform-tests/scroll-animations/css/view-timeline-dynamic-expected.txt:
* Source/WebCore/animation/StyleOriginatedTimelinesController.cpp:
(WebCore::StyleOriginatedTimelinesController::determineTreeOrder):
(WebCore::StyleOriginatedTimelinesController::attachAnimation):
Canonical link: https://commits.webkit.org/291574@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes