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