RESOLVED FIXED308304
[threaded-animations] failed assertion`ASSERT(timeline)` in `RemoteLayerTreeNode::setAcceleratedEffectsAndBaseValues()`
https://bugs.webkit.org/show_bug.cgi?id=308304
Summary [threaded-animations] failed assertion`ASSERT(timeline)` in `RemoteLayerTreeN...
Antoine Quint
Reported 2026-02-20 07:39:32 PST
We have reports of `ASSERT(timeline)` in `ScrollTimeline::computeProgressResolutionData()` failing.
Attachments
Antoine Quint
Comment 1 2026-02-20 07:39:52 PST
Antoine Quint
Comment 2 2026-02-20 10:09:03 PST
I've found one way to reproduce such a crash with content like so: ``` <style> #container { position: absolute; width: 400px; height: 400px; overflow: scroll; } @keyframes grow { from { scale: 0 1 } to { scale: 1 1 } } #progress { position: absolute; width: 100%; height: 2000px; background-color: black; transform-origin: top left; animation: grow auto; animation-timeline: scroll(); } </style> <div id="container"> <div id="progress"></div> </div> ``` In this example, `#container` is composited, but once the animation applying to `#progress` is accounted for, `#container` no longer is. This will cause the accelerated timeline to be removed, but the accelerated animation is not, causing the disconnect in the remote layer tree. I think we need to do two things here: 1. ensure a scrolling container that is the source of a timeline targeted by accelerated animations is composted, 2. harden our code such that the animations pending upload to the remote layer tree are pruned if we find out their accelerated timeline representation has been removed since their addition.
Antoine Quint
Comment 3 2026-02-21 09:18:45 PST
In the end we merely need to call to `Document::runPostRenderingUpdateAnimationTasks()` inside `Page::doAfterUpdateRendering()` so that it's done after `layoutIfNeeded(LayoutOptions::UpdateCompositingLayers)`.
Antoine Quint
Comment 4 2026-02-21 10:00:07 PST
EWS
Comment 5 2026-02-21 14:50:12 PST
Committed 307993@main (a5afe56ab689): <https://commits.webkit.org/307993@main> Reviewed commits have been landed. Closing PR #59168 and removing active labels.
EWS
Comment 6 2026-02-27 13:19:53 PST
Committed 305413.372@safari-7624-branch (69bda0f8ed7d): <https://commits.webkit.org/305413.372@safari-7624-branch> Reviewed commits have been landed. Closing PR #4564 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.