Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d2277d7a18372283b1e3dab710ccbd196cf91659
https://github.com/WebKit/WebKit/commit/d2277d7a18372283b1e3dab710ccbd196cf91659
Author: Youenn Fablet <[email protected]>
Date: 2026-07-31 (Fri, 31 Jul 2026)
Changed paths:
M Source/WebCore/platform/mediastream/cocoa/CoreAudioCaptureSource.cpp
M
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h
M
Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm
Log Message:
-----------
getUserMedia audio permanently fails with NotAllowedError: No
AVAudioSessionCaptureDevice after an audiomxd media‑services reset on iOS 26
rdar://183164001
https://bugs.webkit.org/show_bug.cgi?id=319706
Reviewed by Eric Carlson.
We react to audio services crash via a listener to recompute the list of
devices.
This ensures that if AVAudioSessionCaptureDeviceManager ever gets an empty
availableInputs due to a crash of audio services close to the availableInputs
crash, we can recover from this.
Also, in CoreAudioCaptureSource::create, we are no longer returning an error if
we do not find the device, if the device is the default.
In that case, later when starting capture, we anyway check whether the device
is empty and if so, we set preferred device to the empty string.
We also enforce refresh of capture devices if we enter in the No
AVAudioSessionCaptureDevice error as a further improvement.
* Source/WebCore/platform/mediastream/cocoa/CoreAudioCaptureSource.cpp:
(WebCore::CoreAudioCaptureSource::create):
* Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
* Source/WebCore/platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
(-[WebAVAudioSessionAvailableInputsListener initWithCallback:audioSession:]):
(-[WebAVAudioSessionAvailableInputsListener sessionMediaServicesWereReset:]):
(WebCore::AVAudioSessionCaptureDeviceManager::scheduleMediaServicesWereReset):
Canonical link: https://commits.webkit.org/318349@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications