Bug 268471 - [Site Isolation] If testRunner.notifyDone is called from a site isolated process layout test may not complete
Summary: [Site Isolation] If testRunner.notifyDone is called from a site isolated proc...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebKit Process Model (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Ryan Reno
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2024-01-31 08:47 PST by Ryan Reno
Modified: 2024-02-07 05:53 PST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Ryan Reno 2024-01-31 08:47:35 PST
...
Comment 1 Ryan Reno 2024-01-31 08:47:46 PST
<rdar://problem/121682316>
Comment 2 Ryan Reno 2024-01-31 08:58:17 PST
Pull Request: https://github.com/WebKit/WebKit/pull/23589
Comment 3 Ryan Reno 2024-02-05 09:19:34 PST
There's a race condition between the main frame and a remote frame calling notifyDone. If the main frame's DocumentLoader makes its finished loading callbacks and checks in with the UIProcess' m_waitUntilDone variable (via the GetWaitUntilDone message) before the remote frame can write to the variable then we'll hang, waiting forever.


The fix is going to be identifying whether or not notifyDone is being called from a remote frame and if it is, sending the "Done" message to the UIProcess which will take care of notifying the main frame's WebContent process to wrap up the test.
Comment 4 Ryan Reno 2024-02-05 17:12:51 PST
Pull request: https://github.com/WebKit/WebKit/pull/23893
Comment 5 EWS 2024-02-07 05:53:43 PST
Committed 274211@main (2e5a9d342dc4): <https://commits.webkit.org/274211@main>

Reviewed commits have been landed. Closing PR #23893 and removing active labels.