Branch: refs/heads/main Home: https://github.com/WebKit/WebKit Commit: 81ef4249c852641b68977525653f409b52fec5b5 https://github.com/WebKit/WebKit/commit/81ef4249c852641b68977525653f409b52fec5b5 Author: Jer Noble <jer.no...@apple.com> Date: 2025-02-10 (Mon, 10 Feb 2025)
Changed paths: M Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm M Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp M Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp M Source/WebKit/GPUProcess/media/cocoa/RemoteMediaPlayerManagerProxyCocoa.mm Log Message: ----------- [visionOS] YouTube.com: leaving docked mode after an ad results in black video inline rdar://133617493 https://bugs.webkit.org/show_bug.cgi?id=287298 Reviewed by Eric Carlson. Two problems combined to cause the user visible behavior in this report: 1) When moving a PlatformVideoTarget between two MediaPlayers, the original holder of the PlatformVideoTarget does not have it's video target cleared, and the new holder of the PlatformVideoTarget is not added to the "cached holder of the video target". This means when the PlatformVideoTarget is torn down, we tell the wrong MediaPlayer to clear its copy of the video target. 2) When we pass a valid video target to MediaPlayerPrivateMediaSourceAVFObjC, a bool ivar is set that is never cleared when that video target is subsequently cleared. This causes us to never re-create a layer backing for the MediaPlayer. Drive-by fix: Make RemoteMediaPlayerManagerProxy compatible with LoggerHelper, so that logs can be added to RemoteMediaPlayerManagerProxyCocoa.mm. * Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm: (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setVideoTarget): * Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm: (WebCore::MediaPlayerPrivateWebM::setVideoTarget): * Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.cpp: (WebKit::RemoteMediaPlayerManagerProxy::RemoteMediaPlayerManagerProxy): (WebKit::RemoteMediaPlayerManagerProxy::logChannel const): (WebKit::RemoteMediaPlayerManagerProxy::logger): Deleted. * Source/WebKit/GPUProcess/media/RemoteMediaPlayerManagerProxy.h: (WebKit::RemoteMediaPlayerManagerProxy::logger): (WebKit::RemoteMediaPlayerManagerProxy::logClassName const): (WebKit::RemoteMediaPlayerManagerProxy::logIdentifier const): * Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::mediaPlayerVideoTarget const): * Source/WebKit/GPUProcess/media/cocoa/RemoteMediaPlayerManagerProxyCocoa.mm: (WebKit::RemoteMediaPlayerManagerProxy::takeVideoTargetForMediaElementIdentifier): (WebKit::RemoteMediaPlayerManagerProxy::handleVideoReceiverEndpointMessage): (WebKit::RemoteMediaPlayerManagerProxy::videoTargetForMediaElementIdentifier): Deleted. Canonical link: https://commits.webkit.org/290173@main To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications _______________________________________________ webkit-changes mailing list webkit-changes@lists.webkit.org https://lists.webkit.org/mailman/listinfo/webkit-changes