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