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

Reply via email to