Don't drop the GPUProcess media assertion too promptly after playback ends, instead, drop it on a timer. There is a race where both the GPUProcess and the UIProcess get notified of a WebProcess exiting in parallel. When notified, the UIProcess would drop the media assertion on the GPUProcess, which could get it to suspend while the GPUProcess is STILL shutting down the media stack. Dropping the media assertion on a timer makes it so that the GPUProcess is now extremely unlikely to lose the race and will have properly shut down the media stack by the time it gets suspended.
<rdar://112003621>
Pull request: https://github.com/WebKit/WebKit/pull/15842
Committed 266069@main (e89c9b432a4e): <https://commits.webkit.org/266069@main> Reviewed commits have been landed. Closing PR #15842 and removing active labels.