Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
REGRESSION (iOS 17 Beta): The call is not unmuted automatically after…
… the use of Siri in the middle of the WebRTC call, sometimes incoming audio is lost https://bugs.webkit.org/show_bug.cgi?id=259368 rdar://112636992 Reviewed by Eric Carlson. WebProcess might want to try active its audio session when being interrupted. In case GPUProcess tells it succeeded activating, it will uninterrupt and restart capturing microphone. RemoteAudioSessionProxyManager::tryToSetActiveForProcess may return true to activation even though the underlying shared session was not properly activated. This happens in case there is one RemoteAudioSessionProxy which is active but interrupted. In that case, RemoteAudioSessionProxyManager::tryToSetActiveForProcess would think everything is fine. To prevent this, RemoteAudioSessionProxy is now tracking whether it is interrupted or not. If it is active but interrupted, RemoteAudioSessionProxyManager will not consider it is actually active and will try to activate the underlying audio session. If activation succeeds, uninterruption will follow. If activation fails, uninterruption will be further delayed. Manually tested. * Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.cpp: * Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.h: (WebKit::RemoteAudioSessionProxy::isInterrupted const): * Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp: (WebKit::RemoteAudioSessionProxyManager::tryToSetActiveForProcess): Canonical link: https://commits.webkit.org/266293@main
- Loading branch information