Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: dabf122e6804336f528546dc2bbb9f382e92f971
      
https://github.com/WebKit/WebKit/commit/dabf122e6804336f528546dc2bbb9f382e92f971
  Author: Jean-Yves Avenard <[email protected]>
  Date:   2026-08-11 (Tue, 11 Aug 2026)

  Changed paths:
    M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm

  Log Message:
  -----------
  [site-isolation] media/audio-session-category-unmute-mute.html is a permanent 
failure
https://bugs.webkit.org/show_bug.cgi?id=321479
rdar://184569176

Reviewed by Eric Carlson.

The test plays a muted element and expects the audio session category to be 
None. With site isolation
enabled it read MediaPlayback, on every run, and only when another test had run 
before it in the same
UI process.

updateSessionState() does not drop straight to None: when the computed category 
is None and the previous
one was neither None nor PlayAndRecord, it starts a two second timer and 
reports the previous category
instead. That previous category and the timer belong to the manager instance. 
Without site isolation
that instance is the page's own MediaSessionManagerCocoa, which starts out at 
None for each test. With
site isolation the category is computed by RemoteMediaSessionManagerProxy, one 
instance for the whole UI
process, so MediaPlayback left behind by 
media/audio-session-category-at-most-recent-playback.html was
still the previous category when this test's page computed None, and the hold 
outlasted the gap between
the two tests. The proxy's session counts confirm no session was leaking 
across: it saw one session at a
time and dropped to none between the tests, while every computation reported 
"setting category =
MediaPlayback, previous category = MediaPlayback".

removeSession() clears the previous category and stops the timer once the last 
session is gone, so the
hold only covers transitions while a session exists.

Covered by existing tests.

* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::removeSession): Clear the delayed category 
change when the last
session goes away.

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



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

Reply via email to