Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 727f9c1406c6504a7fc77fe79671e91f02f3ba2e
      
https://github.com/WebKit/WebKit/commit/727f9c1406c6504a7fc77fe79671e91f02f3ba2e
  Author: Youenn Fablet <[email protected]>
  Date:   2023-07-25 (Tue, 25 Jul 2023)

  Changed paths:
    M Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.cpp
    M Source/WebKit/GPUProcess/media/RemoteAudioSessionProxy.h
    M Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp

  Log Message:
  -----------
  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


_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to