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

Reply via email to