Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1018e6f4e438e1c5b723b1eb529ef89236bf4fe6
https://github.com/WebKit/WebKit/commit/1018e6f4e438e1c5b723b1eb529ef89236bf4fe6
Author: Jer Noble <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
M Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.cpp
M Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.h
Log Message:
-----------
[macOS] YouTube.com audio continues to play after tab is closed
rdar://185505597
https://bugs.webkit.org/show_bug.cgi?id=322533
Reviewed by Eric Carlson and Andy Estes.
In 319759@main, RemoteAudioVideoRendererProxyManager was modified to explicitly
pause and flush all renderers when the manager was destroyed, and to explicitly
pause and flush individual renderers in shutdown(). However, this was not
sufficient to completely eliminate the behavior in question. Logging showed
that both a) the WebContent process was being destroyed before a pause() IPC
could be sent b) the GPUConnectionToWebContent process destructor wasn't being
called This means the pause behavior added to
RemoteAudioVideoRendererProxyManager's destructor wasn't being called either.
Rather than relying on the RefCounted GPUConnectionToWebContent object being
fully destroyed before tearing down all our audio and video renderers, adopt
the same mechanism used for other objects owned by the connection:
GPUConnectionToWebProcess::didClose(). Logging shows this method is called
while reproducing the bug, even when the GPUConnectionToWebProcess itself is
not subsequently destroyed.
* Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.cpp:
(WebKit::RemoteAudioVideoRendererProxyManager::connectionToWebProcessClosed):
* Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.h:
* Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp
(WebKit::GPUConnectionToWebProcess::didClose):
Canonical link: https://commits.webkit.org/319842@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications