Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b66c74f488966774b7b42b4ec68e8bef60a8ee32
      
https://github.com/WebKit/WebKit/commit/b66c74f488966774b7b42b4ec68e8bef60a8ee32
  Author: Jean-Yves Avenard <[email protected]>
  Date:   2026-07-28 (Tue, 28 Jul 2026)

  Changed paths:
    M LayoutTests/platform/ios-site-isolation/TestExpectations
    M Source/WebCore/platform/audio/AudioSession.h
    M Source/WebCore/platform/audio/MediaSessionManagerInterface.h
    M Source/WebCore/platform/audio/PlatformMediaSessionTypes.h
    M Source/WebKit/Shared/WebCoreArgumentCodersMedia.serialization.in
    M Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.cpp
    M Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.h
    M Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.messages.in
    M Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.cpp

  Log Message:
  -----------
  [site-isolation] fast/mediastream/audio-track-enabled.html is a permanent 
failure
https://bugs.webkit.org/show_bug.cgi?id=320409
rdar://183370165

Reviewed by Eric Carlson and Megan Gardner.

Audio session category was not propagated to WebContent process under site 
isolation

Under site isolation the WebContent process reads a cached RemoteAudioSession
category that is only updated by the UIProcess proxy, but the proxy computed
PlayAndRecord from the capture count before any media session had
registered (so it was pushed to no process) and then early-returned once
the session did register, leaving the WebContent category stuck at None.
Fixed by folding the audio-capture-source count into an async-reply
UpdateMediaSessionStates and returning the category on the 
MediaSessionWillBeginPlayback
reply, so the WebContent process applies the current category directly and
play() only resolves once it has been updated.

* Source/WebCore/platform/audio/AudioSession.h: Move enums definitions so that 
they can be compiled on GTK-based player.
* Source/WebCore/platform/audio/MediaSessionManagerInterface.h:
* Source/WebCore/platform/audio/PlatformMediaSessionTypes.h:
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.messages.in:
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.h:
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.cpp:
(WebKit::RemoteMediaSessionManagerProxy::updateMediaSessionStates): Take the 
per-page capture count, update the aggregate, and reply with the current 
category.
(WebKit::RemoteMediaSessionManagerProxy::mediaSessionWillBeginPlayback): Reply 
with the current category so play() observes it.
* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.h:
* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.cpp:
(WebKit::RemoteMediaSessionManager::updateSessionState): Send the capture count 
and apply the returned category.
(WebKit::RemoteMediaSessionManager::sessionWillBeginPlayback): Apply the 
returned category before resuming playback.
* LayoutTests/platform/ios-site-isolation/TestExpectations: Unskip the 
now-passing test.

Canonical link: https://commits.webkit.org/318099@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to