Bug 308303

Summary: [threaded-animations] failed assertion `ASSERT(sourceScrollableArea->scrollingNodeID())` in `ScrollTimeline::computeProgressResolutionData()`
Product: WebKit Reporter: Antoine Quint <graouts>
Component: AnimationsAssignee: Antoine Quint <graouts>
Status: RESOLVED FIXED    
Severity: Normal CC: graouts, webkit-bug-importer
Priority: P2 Keywords: InRadar
Version: WebKit Nightly Build   
Hardware: Unspecified   
OS: Unspecified   

Antoine Quint
Reported 2026-02-20 07:35:01 PST
We have reports of `ASSERT(sourceScrollableArea->scrollingNodeID())` in `ScrollTimeline::computeProgressResolutionData()` failing. Code inspection make it pretty obvious what is wrong: we use `ScrollTimeline::canBeAccelerated()` to determine that a timeline can be accelerated in `AcceleratedEffectStackUpdater::takeTimelinesUpdate()` to guard calls to `ScrollTimeline::updateAcceleratedRepresentation()` and then `ScrollTimeline::computeProgressResolutionData()`, letting those methods imply that they have a source with a scrolling node ID. However, `ScrollTimeline::canBeAccelerated()` is not live and returns the cached result of `ScrollTimeline::computeCanBeAccelerated()` under `AnimationTimeline::runPostRenderingUpdateTasks()` so that we can determine when that status changes one per animation frame. We need to change `canBeAccelerated()` to be live and keep and rename the cached flag for just that purpose.
Attachments
Antoine Quint
Comment 1 2026-02-20 07:35:09 PST
Antoine Quint
Comment 2 2026-02-20 08:04:22 PST
EWS
Comment 3 2026-02-20 22:05:35 PST
Committed 307965@main (05c889923120): <https://commits.webkit.org/307965@main> Reviewed commits have been landed. Closing PR #59093 and removing active labels.
Note You need to log in before you can comment on or make changes to this bug.