Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 629aabcec47d8838d3b28aed9a7e7782daf598d6
      
https://github.com/WebKit/WebKit/commit/629aabcec47d8838d3b28aed9a7e7782daf598d6
  Author: Antoine Quint <[email protected]>
  Date:   2026-10-03 (Sat, 03 Oct 2026)

  Changed paths:
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm
    M Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm
    M TestExpectations/apitests

  Log Message:
  -----------
  New Test(321307@main): [ iOS ] 
TestWebKitAPI.SiteIsolation.RemoteTimelinesAndAnimationsClearedWhenIframeProcessCrashes
 is a constant failure (FAIL)
https://bugs.webkit.org/show_bug.cgi?id=325224
rdar://188343629

Reviewed by Anne van Kesteren.

This API test failure uncovered two issues.

The first issue was that when we added support for correctly clearing remote 
timelines and animations upon a web process
crash in 321307@main, we were calling straight into 
`RemoteLayerTreeHost::animationsWereRemovedFromNode()` from
`RemoteLayerTreeHost::remotePageProcessDidTerminate()`. While this correctly 
cleared animations as used within animation
application, it did not clear animations registered on the 
`RemoteLayerTreeNode` that they were originally uploaded with.
On iOS, this mattered because the testing function used to gather animations 
goes through `RemoteLayerTreeNode`. So instead
we now call into `RemoteLayerTreeNode::setAcceleratedEffectsAndBaseValues()` 
which will also call into
`RemoteLayerTreeHost::animationsWereRemovedFromNode()` accomplishing the two 
required cleanup tasks.

The second issue was that within 
`RemoteLayerTreeNode::setAcceleratedEffectsAndBaseValues()`, when setting an 
empty animation
stack, as is now the case in 
`RemoteLayerTreeHost::remotePageProcessDidTerminate()`, we would correctly call
`RemoteLayerTreeHost::animationsWereRemovedFromNode()`, which would prevent 
those animations from having any effect, but we
neglected to clear `m_animationStack` and so the node retained the 
previously-set animations which we would be reported
still when calling the testing functions used in this API test.

This test now passes reliably on macOS and iOS both, so we remove its failing 
expectation on iOS.

* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeHost.mm:
(WebKit::RemoteLayerTreeHost::remotePageProcessDidTerminate):
* Source/WebKit/UIProcess/RemoteLayerTree/RemoteLayerTreeNode.mm:
(WebKit::RemoteLayerTreeNode::setAcceleratedEffectsAndBaseValues):
* TestExpectations/apitests:

Canonical link: https://commits.webkit.org/322594@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to