Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 1ac68abf2d3ef078ede465e86da86474faea533b
https://github.com/WebKit/WebKit/commit/1ac68abf2d3ef078ede465e86da86474faea533b
Author: Jean-Yves Avenard <[email protected]>
Date: 2026-08-10 (Mon, 10 Aug 2026)
Changed paths:
M LayoutTests/platform/ios-site-isolation/TestExpectations
M Source/WebCore/platform/audio/PlatformMediaSession.cpp
Log Message:
-----------
[site-isolation] media/media-session/interruption-sends-pause-action.html is
a permanent timeout
https://bugs.webkit.org/show_bug.cgi?id=321362
rdar://184409252
Reviewed by Eric Carlson.
The test waited for a pause action that never arrived: MediaSession never calls
PlatformMediaSession::setActive(), and
RemoteMediaSessionManager::sessionWillBeginPlayback() did not call
setCurrentSession() either, so the
session was in no session list and beginInterruption()'s forEachSession() never
reached it.
Registering it was not enough. Setting playbackState to "playing" asked the UI
process whether playback
could begin and completed on the reply, while the test began and ended the
interruption within one task.
beginInterruption() sampled m_stateToRestore mid-request and recorded
State::Idle, so
endInterruption(MayResumePlaying) computed shouldResume as false and sent no
play action.
The web process now registers the session with the base class
setCurrentSession(), and
beginInterruption() records State::Playing while a playback request is in
flight.
* LayoutTests/platform/ios-site-isolation/TestExpectations:
* Source/WebCore/platform/audio/PlatformMediaSession.cpp:
(WebCore::PlatformMediaSession::beginInterruption): Restore State::Playing when
a playback request is
in flight.
* Source/WebKit/WebProcess/Media/RemoteMediaSessionManager.cpp:
(WebKit::RemoteMediaSessionManager::sessionWillBeginPlayback): Register the
session with the base class
setCurrentSession().
Canonical link: https://commits.webkit.org/318941@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications