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

Reply via email to