Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 755ea5bdabcb1ab6b7e6135f7de2370f9cbe4909
https://github.com/WebKit/WebKit/commit/755ea5bdabcb1ab6b7e6135f7de2370f9cbe4909
Author: Youenn Fablet <[email protected]>
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
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes