Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: b80101a8634c8302d4b3c529bec0327b2e073eee
https://github.com/WebKit/WebKit/commit/b80101a8634c8302d4b3c529bec0327b2e073eee
Author: Eric Carlson <[email protected]>
Date: 2025-11-21 (Fri, 21 Nov 2025)
Changed paths:
M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h
M Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.h
M Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.cpp
M Source/WebKit/UIProcess/Media/RemoteMediaSessionClientProxy.cpp
M Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.cpp
M Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.h
M Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.messages.in
M Source/WebKit/UIProcess/WebPageProxy.cpp
M Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp
M Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.h
M Source/WebKit/WebProcess/GPU/media/RemoteAudioSessionConfiguration.h
M
Source/WebKit/WebProcess/GPU/media/RemoteAudioSessionConfiguration.serialization.in
M Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.cpp
M Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.h
M Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.messages.in
M Source/WebKit/WebProcess/WebProcess.cpp
M Source/WebKit/WebProcess/WebProcess.h
Log Message:
-----------
[Site isolation] Pipe AudioSession and AudioHardwareListener between
RemoteMediaSessionManager and RemoteMediaSessionManagerProxy
https://bugs.webkit.org/show_bug.cgi?id=302875
rdar://165134705
Reviewed by Jer Noble.
RemoteMediaSessionManagerProxy, the part of media session manager that runs in
the UI process,
needs to read and write AudioSession and AudioHardwareListener. Both of these
run in the
GPU process and have proxies in the Web process. Add additional proxies in
RemoteMediaSessionManagerProxy in the UI process, and pipe state changes
between it and
RemoteMediaSessionManager in the WebProcess so all three processes stay in sync.
No new tests, the remote session manager is disabled by default and is not
testable yet.
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.h:
(WebCore::MediaSessionManagerCocoa::audioHardwareListener const):
(WebCore::MediaSessionManagerCocoa::audioHardwareDidBecomeActive):
(WebCore::MediaSessionManagerCocoa::audioHardwareDidBecomeInactive):
(WebCore::MediaSessionManagerCocoa::didReceiveRemoteControlCommand):
(WebCore::MediaSessionManagerCocoa::logClassName const):
* Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.h:
* Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.cpp:
(WebKit::RemoteAudioSessionProxy::RemoteAudioSessionProxy):
(WebKit::RemoteAudioSessionProxy::configuration):
* Source/WebKit/UIProcess/Media/RemoteMediaSessionClientProxy.cpp:
(WebKit::RemoteMediaSessionClientProxy::didReceiveRemoteControlCommand):
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.cpp:
(WebKit::RemoteMediaSessionManagerProxy::RemoteMediaSessionManagerProxy):
(WebKit::RemoteMediaSessionManagerProxy::remoteAudioConfigurationChanged):
(WebKit::RemoteMediaSessionManagerProxy::setCategory):
(WebKit::RemoteMediaSessionManagerProxy::tryToSetActiveInternal):
(WebKit::RemoteMediaSessionManagerProxy::setPreferredBufferSize):
(WebKit::RemoteMediaSessionManagerProxy::remoteAudioHardwareDidBecomeActive):
(WebKit::RemoteMediaSessionManagerProxy::remoteAudioHardwareDidBecomeInactive):
(WebKit::RemoteMediaSessionManagerProxy::remoteAudioOutputDeviceChanged):
(WebKit::RemoteMediaSessionManagerProxy::ensureAudioHardwareListenerProxy):
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.h:
(WebKit::RemoteMediaSessionManagerProxy::logClassName const):
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.messages.in:
* Source/WebKit/UIProcess/WebPageProxy.cpp:
* Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp:
(WebKit::RemoteAudioSession::create):
(WebKit::RemoteAudioSession::RemoteAudioSession):
(WebKit::RemoteAudioSession::configurationChanged):
* Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.h:
* Source/WebKit/WebProcess/GPU/media/RemoteAudioSessionConfiguration.h:
*
Source/WebKit/WebProcess/GPU/media/RemoteAudioSessionConfiguration.serialization.in:
* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.cpp:
(WebKit::RemoteMediaSessionManager::RemoteMediaSessionManager):
(WebKit::RemoteMediaSessionManager::addSession):
(WebKit::RemoteMediaSessionManager::removeSession):
(WebKit::RemoteMediaSessionManager::setCurrentSession):
(WebKit::RemoteMediaSessionManager::audioHardwareDidBecomeActive):
(WebKit::RemoteMediaSessionManager::audioHardwareDidBecomeInactive):
(WebKit::RemoteMediaSessionManager::audioOutputDeviceChanged):
(WebKit::RemoteMediaSessionManager::setAudioSessionCategory):
(WebKit::RemoteMediaSessionManager::setAudioSessionPreferredBufferSize):
(WebKit::RemoteMediaSessionManager::tryToSetAudioSessionActive):
(WebKit::RemoteMediaSessionManager::updateCachedSessionState):
* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.h:
(WebKit::RemoteMediaSessionManager::logClassName const):
* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.messages.in:
* Source/WebKit/WebProcess/WebProcess.cpp:
(WebKit::WebProcess::remoteAudioSessionConfigurationChanged):
(WebKit::WebProcess::setUseGPUProcessForMedia):
* Source/WebKit/WebProcess/WebProcess.h:
Canonical link: https://commits.webkit.org/303417@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications