Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: cf642dec7e61f18c72a31aa01aa692a63578d788
https://github.com/WebKit/WebKit/commit/cf642dec7e61f18c72a31aa01aa692a63578d788
Author: Andy Estes <[email protected]>
Date: 2025-11-21 (Fri, 21 Nov 2025)
Changed paths:
M Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp
Log Message:
-----------
ASSERTION FAILED: m_outputContext in
MediaPlaybackTargetContextCocoa::MediaPlaybackTargetContextCocoa
https://bugs.webkit.org/show_bug.cgi?id=302914
rdar://165184616
Reviewed by Jean-Yves Avenard.
When the WebContent process receives a
RemoteMediaSessionHelper::ActiveVideoRouteDidChange message
it attempts to construct an AVOutputContext from the contextID and contextType
contained in
MediaPlaybackTargetContextSerialized. AVOutputContext creation involves sending
XPC messages that
are blocked by the WebContent sandbox, and therefore creation fails, leading to
ASSERT(m_outputContext) failing in the MediaPlaybackTargetContextCocoa
constructor.
Resolved this by creating a MediaPlaybackTargetSerialized rather than a
MediaPlaybackTargetCocoa in
RemoteMediaSessionHelper::activeVideoRouteDidChange. The serialized playback
target does not
attempt to create an AVOutputContext but does contain the metadata needed by
the WebContent process
(e.g., deviceName) as well as the contextID and contextType necessary to
re-create an
AVOutputContext in the GPU process when it is sent via
RemoteMediaPlayerProxy::SetWirelessPlaybackTarget.
Tested manually.
* Source/WebKit/WebProcess/GPU/media/ios/RemoteMediaSessionHelper.cpp:
(WebKit::RemoteMediaSessionHelper::activeVideoRouteDidChange):
Canonical link: https://commits.webkit.org/303434@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications