Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: d04cdc84f0acd5fdee19f2974b661f3ea62cd60e
https://github.com/WebKit/WebKit/commit/d04cdc84f0acd5fdee19f2974b661f3ea62cd60e
Author: Jer Noble <[email protected]>
Date: 2026-05-07 (Thu, 07 May 2026)
Changed paths:
M Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h
M Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.mm
M Source/WebCore/Modules/mediasession/MediaSession.cpp
M Source/WebCore/Modules/mediasession/MediaSession.h
M Source/WebCore/page/Quirks.cpp
M Source/WebCore/page/Quirks.h
M Source/WebCore/page/QuirksData.h
Log Message:
-----------
[visionOS] Tubular.app prevents other media apps on device from ever playing
rdar://175030498
https://bugs.webkit.org/show_bug.cgi?id=314264
Reviewed by Eric Carlson.
The Tubular app replaces HTMLMediaElement.prototype.pause with its own version
that
only allows pausing to work when the video has ended, or when it determines
there the
user clicked the play button. In all other circumstances, it issues the
pause(), but
follows it immediately with play().
When WebKit receives a system interruption, we let the page know by issuing a
MediaSession pause action; this allows pages' internal state machine to be in
sync
with the video element. But when Tubular calls play() during a system
interruption,
this causes WebKit to "steal" the audio session from the other media playback
application.
What's worse, this Tubular behavior even occurs if the video isn't actually
playing,
so this stealing will happen even if media inside Tubular is not playing.
Add a quirk that disables the MediaSession pause action, just for the Tubular
app.
* Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h:
* Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.mm:
(WTF::IOSApplication::isTubular):
* Source/WebCore/Modules/mediasession/MediaSession.cpp:
(WebCore::m_coordinator):
* Source/WebCore/Modules/mediasession/MediaSession.h:
* Source/WebCore/page/Quirks.cpp:
* Source/WebCore/page/Quirks.h:
* Source/WebCore/page/QuirksData.h:
Canonical link: https://commits.webkit.org/312861@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications