Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: ec92002c1155560ee158e7aea473098c075c2793
https://github.com/WebKit/WebKit/commit/ec92002c1155560ee158e7aea473098c075c2793
Author: Jean-Yves Avenard <[email protected]>
Date: 2026-08-09 (Sun, 09 Aug 2026)
Changed paths:
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] media/audioSession/audioSessionType-web-audio.html is a
permanent failure
https://bugs.webkit.org/show_bug.cgi?id=321275
rdar://184323410
Reviewed by Eric Carlson.
navigator.audioSession.type had no effect once the audio session category was
recomputed:
media/audioSession/audioSessionType-web-audio.html read "AmbientSound" where it
expected
"PlayAndRecord" after starting an AudioContext. The category is computed in the
UI process, whose
RemoteMediaSessionManagerProxy read the override out of a configuration built
in the GPU process
from the GPU's own audio session, which never carries one.
navigator.audioSession.type set the
override on the WebContent process's AudioSession, and nothing forwarded it, so
the UI process kept
CategoryType::None and fell through to the WebAudio branch. 100% failure with
site isolation
enabled; without it the category is computed in the process that set the
override, and the test
passed.
The override now travels in the UpdateMediaSessionStates message, so the UI
process has it before
the reply computes a category. The proxy keeps one override per page, so that a
page which never
set one does not clear the override belonging to another page, and it drops a
page's entry when
that page's process goes away.
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.cpp:
(WebKit::RemoteMediaSessionManagerProxy::webProcessWillShutDown): Drop the
overrides of the
departing process.
(WebKit::RemoteMediaSessionManagerProxy::updateMediaSessionStates): Record the
sending page's
override.
(WebKit::RemoteMediaSessionManagerProxy::categoryOverride): Added; returns the
override of any page
that set one.
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.h:
* Source/WebKit/UIProcess/Media/RemoteMediaSessionManagerProxy.messages.in:
Carry the category
override in UpdateMediaSessionStates.
* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.cpp:
(WebKit::RemoteMediaSessionManager::updateSessionState): Send this process's
category override.
Canonical link: https://commits.webkit.org/318865@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications