Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: e6e420dcded4f5246920464c9e469ce74d460982
      
https://github.com/WebKit/WebKit/commit/e6e420dcded4f5246920464c9e469ce74d460982
  Author: Jer Noble <[email protected]>
  Date:   2026-01-21 (Wed, 21 Jan 2026)

  Changed paths:
    A 
LayoutTests/media/media-session/interruption-sends-pause-action-expected.txt
    A LayoutTests/media/media-session/interruption-sends-pause-action.html
    M Source/WebCore/Modules/mediasession/MediaMetadata.cpp
    M Source/WebCore/Modules/mediasession/MediaSession.cpp
    M Source/WebCore/Modules/mediasession/MediaSession.h
    M Source/WebCore/Modules/mediasession/MediaSessionCoordinator.cpp
    M Source/WebCore/bindings/js/JSMediaSessionCustom.cpp
    M Source/WebCore/platform/LogMessages.in
    M Source/WebCore/platform/audio/MediaSessionManagerInterface.cpp
    M Source/WebCore/platform/audio/MediaSessionManagerInterface.h
    M Source/WebCore/platform/audio/PlatformMediaSession.cpp
    M Source/WebCore/platform/audio/PlatformMediaSessionTypes.h
    M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm

  Log Message:
  -----------
  [Cocoa] YouTube will continue to play after locking screen or after a system 
interruption
rdar://166265637
https://bugs.webkit.org/show_bug.cgi?id=305592

Reviewed by Eric Carlson.

When an interruption occurs, either from the system or from a WebKit policy,
WebKit will pause a playing <video> or <audio> element. However, web apps just
see that their video or audio paused, and can try to re-start it. Rather than
just pausing upon interruption, indicate to web apps that use MediaSession that
they should move to a "paused" state by calling the action handler for "pause".
Web apps should react as if the user hit the pause key on their keyboard or
used the button on their headphones to pause.

Test: media/media-session/interruption-sends-pause-action.html

* LayoutTests/media/media-session/interruption-sends-pause-action-expected.txt: 
Added.
* LayoutTests/media/media-session/interruption-sends-pause-action.html: Added.
* Source/WebCore/Modules/mediasession/MediaSession.cpp:
(WebCore::MediaSession::MediaSession):
(WebCore::MediaSession::setPlaybackState):
(WebCore::MediaSession::mayResumePlayback):
(WebCore::MediaSession::suspendPlayback):
(WebCore::MediaSession::isPlaying const):
(WebCore::MediaSession::isEnded const):
(WebCore::MediaSession::mediaSessionDuration const):
(WebCore::MediaSession::mediaSessionGroupIdentifier const):
* Source/WebCore/Modules/mediasession/MediaSession.h:
* Source/WebCore/platform/LogMessages.in:
* Source/WebCore/platform/audio/MediaSessionManagerInterface.cpp:
(WebCore::MediaSessionManagerInterface::resetRestrictions):
* Source/WebCore/platform/audio/MediaSessionManagerInterface.h:
* Source/WebCore/platform/audio/PlatformMediaSession.cpp:
(WebCore::convertEnumerationToString):
* Source/WebCore/platform/audio/PlatformMediaSessionTypes.h:
* Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::updateSessionState):

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



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

Reply via email to