Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 2d3a7739eeee703e402ce301ae460d440e6f1930
https://github.com/WebKit/WebKit/commit/2d3a7739eeee703e402ce301ae460d440e6f1930
Author: David Kilzer <[email protected]>
Date: 2026-08-05 (Wed, 05 Aug 2026)
Changed paths:
M
Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimelineRegistry.cpp
Log Message:
-----------
RemoteProgressBasedTimelineRegistry keeps empty source entries of threaded
animations after a progress-based timeline changes source
<https://bugs.webkit.org/show_bug.cgi?id=320837>
<rdar://183856184>
Reviewed by Antoine Quint.
Every entry in `processTimelines` is expected to hold at least one
timeline, since an entry with an empty set describes a scrolling node
that no longer sources anything. Taking a timeline out of its former
source and moving it to a new one empties that set, so the invariant
must be restored on every update. Restoring it only while iterating
`timelinesUpdate.destroyed` fails to remove empty source entries from
`processTimelines` whenever an update does not destroy a timeline, so
they survive until some later update for that process destroys one.
Sweep empty entries unconditionally so the invariant no longer depends
on what an update happens to contain. Erasing them in a single pass
also removes the need to collect their keys in a temporary `HashSet`.
No new tests since an empty entry is indistinguishable from an absent
one through the existing testing interfaces.
*
Source/WebKit/UIProcess/RemoteLayerTree/RemoteProgressBasedTimelineRegistry.cpp:
(WebKit::RemoteProgressBasedTimelineRegistry::update):
Canonical link: https://commits.webkit.org/318657@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications