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

Reply via email to