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