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

Reply via email to