Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 755ea5bdabcb1ab6b7e6135f7de2370f9cbe4909 https://github.com/WebKit/WebKit/commit/755ea5bdabcb1ab6b7e6135f7de2370f9cbe4909 Author: Youenn Fablet <you...@apple.com> Date: 2025-09-15 (Mon, 15 Sep 2025)
Changed paths: M LayoutTests/fast/mediastream/microphone-interruption-and-audio-session.html M LayoutTests/platform/ios/TestExpectations M Source/WebCore/Modules/audiosession/DOMAudioSession.cpp M Source/WebCore/platform/audio/AudioSession.cpp M Source/WebCore/platform/audio/AudioSession.h M Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm M Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp M Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp M Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp M Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp Log Message: ----------- REGRESSION (287736@main?): [ iOS ] fast/mediastream/microphone-interruption-and-audio-session.html is constantly failing. https://bugs.webkit.org/show_bug.cgi?id=287033 rdar://144177133 Reviewed by Jean-Yves Avenard. The test is flaky as we sometimes recreate the GPUProcess and the CoreAudioCaptureSourceFactory will register itself as an interruption observer to the dummy AudioSession. Instead, we are now having a singleton set of interruption observers, used by AudioSession objects when being interrupted/ending interruptions. Only the shared AudioSession is expected to being interrupted/ending interruptions, so there should be no issue with several AudioSessions doing interruptions in parallel. We also update the test to make sure capture tracks are stopped explicitly. * LayoutTests/fast/mediastream/microphone-interruption-and-audio-session.html: * LayoutTests/platform/ios/TestExpectations: * Source/WebCore/Modules/audiosession/DOMAudioSession.cpp: (WebCore::DOMAudioSession::DOMAudioSession): (WebCore::DOMAudioSession::~DOMAudioSession): * Source/WebCore/platform/audio/AudioSession.cpp: (WebCore::audioSessionInterruptionObserversSingleton): (WebCore::AudioSession::addInterruptionObserver): (WebCore::AudioSession::removeInterruptionObserver): (WebCore::AudioSession::beginInterruption): (WebCore::AudioSession::endInterruption): (WebCore::AudioSession::activeStateChanged): * Source/WebCore/platform/audio/AudioSession.h: * Source/WebCore/platform/audio/ios/MediaSessionManagerIOS.mm: (WebCore::MediaSessionManageriOS::MediaSessionManageriOS): (WebCore::MediaSessionManageriOS::~MediaSessionManageriOS): * Source/WebCore/platform/mediastream/mac/CoreAudioCaptureSource.cpp: (WebCore::CoreAudioCaptureSourceFactory::CoreAudioCaptureSourceFactory): (WebCore::CoreAudioCaptureSourceFactory::~CoreAudioCaptureSourceFactory): * Source/WebKit/GPUProcess/media/RemoteAudioSessionProxyManager.cpp: (WebKit::RemoteAudioSessionProxyManager::RemoteAudioSessionProxyManager): (WebKit::RemoteAudioSessionProxyManager::~RemoteAudioSessionProxyManager): (WebKit::RemoteAudioSessionProxyManager::beginInterruptionRemote): (WebKit::RemoteAudioSessionProxyManager::endInterruptionRemote): * Source/WebKit/GPUProcess/webrtc/RemoteAudioMediaStreamTrackRendererInternalUnitManager.cpp: (WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit::RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit): (WebKit::RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit::~RemoteAudioMediaStreamTrackRendererInternalUnitManagerUnit): * Source/WebKit/WebProcess/GPU/media/RemoteAudioSession.cpp: (WebKit::RemoteAudioSession::RemoteAudioSession): (WebKit::RemoteAudioSession::~RemoteAudioSession): (WebKit::RemoteAudioSession::beginInterruptionRemote): (WebKit::RemoteAudioSession::endInterruptionRemote): Canonical link: https://commits.webkit.org/300015@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes