Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: c320bb08e139b6a698594f0320827767771259fd https://github.com/WebKit/WebKit/commit/c320bb08e139b6a698594f0320827767771259fd Author: Jer Noble <jer.no...@apple.com> Date: 2023-10-30 (Mon, 30 Oct 2023)
Changed paths: M LayoutTests/media/audio-background-playback-playlist-expected.txt M LayoutTests/media/audio-background-playback-playlist.html A LayoutTests/media/content/short.mp3 A LayoutTests/media/ios/short-audio-now-playing-expected.txt A LayoutTests/media/ios/short-audio-now-playing.html M Source/WebCore/html/HTMLMediaElement.cpp M Source/WebCore/html/HTMLMediaElement.h M Source/WebCore/html/MediaElementSession.cpp M Source/WebCore/html/MediaElementSession.h M Source/WebCore/platform/audio/PlatformMediaSession.cpp M Source/WebCore/platform/audio/PlatformMediaSession.h M Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm Log Message: ----------- [Cocoa] Slack.com audible notifications interrupt Music.app and steal NowPlaying status https://bugs.webkit.org/show_bug.cgi?id=263750 rdar://114667001 Reviewed by Eric Carlson. Many sites use short-duration audio sources via the <audio> element as "alert" sounds. When these sounds are played, they are categorized by existing heuristics as MediaPlayback, and will cause the application to request NowPlayingApplication status. This breaks playback in other media playing applications on the system, and prevents hardware playback buttons from resuming playback from the original application after the interruption. Add a heuristic for "short duration audio playback" defined by "audio with a duration of less-than-or-equal-to the AOL youvegotmail.mp3 sound". * LayoutTests/media/ios/short-audio-now-playing-expected.txt: Added. * LayoutTests/media/ios/short-audio-now-playing.html: Added. * Source/WebCore/html/HTMLMediaElement.cpp: (WebCore::mediaElementSessionInfoForSession): (WebCore::HTMLMediaElement::enterFullscreen): (WebCore::HTMLMediaElement::mediaSessionDuration const): * Source/WebCore/html/HTMLMediaElement.h: * Source/WebCore/html/MediaElementSession.cpp: (WebCore::MediaElementSession::canShowControlsManager const): (WebCore::isElementLargeEnoughForMainContent): (WebCore::isElementLongEnoughForMainContent): * Source/WebCore/html/MediaElementSession.h: * Source/WebCore/platform/audio/PlatformMediaSession.cpp: (WebCore::PlatformMediaSession::isEnded const): (WebCore::PlatformMediaSession::duration const): (WebCore::PlatformMediaSessionClient::mediaSessionDuration const): * Source/WebCore/platform/audio/PlatformMediaSession.h: (WebCore::PlatformMediaSessionClient::isSuspended const): (WebCore::PlatformMediaSessionClient::isPlaying const): (WebCore::PlatformMediaSessionClient::isAudible const): (WebCore::PlatformMediaSessionClient::isEnded const): * Source/WebCore/platform/audio/cocoa/MediaSessionManagerCocoa.mm: (WebCore::MediaSessionManagerCocoa::sessionWillEndPlayback): Canonical link: https://commits.webkit.org/269948@main _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes