[webkit-changes] [WebKit/WebKit] 57e516: REGRESSION(260575 at main): Google Meet Video renders...
Jer Noble
noreply at github.com
Thu Mar 9 12:09:53 PST 2023
Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 57e51615e4e3388bcf66329ac3591f7121bd20ee
https://github.com/WebKit/WebKit/commit/57e51615e4e3388bcf66329ac3591f7121bd20ee
Author: Jer Noble <jer.noble at apple.com>
Date: 2023-03-09 (Thu, 09 Mar 2023)
Changed paths:
M Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp
M Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm
M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
Log Message:
-----------
REGRESSION(260575 at main): Google Meet Video renders blank (Affects all WebRTC and getUserMedia() rendering)
https://bugs.webkit.org/show_bug.cgi?id=253632
rdar://105795272
Reviewed by Eric Carlson.
When creating a layer for remote rendering, if the HTMLMediaElement does not have a valid
layerHostingContextID, try to create a local layer rather than passing over just the contextID.
This results in non-GPU-process hosted MediaPlayers (like all media-stream backed MediaPlayers) to
create a local layer, even when UI-side compositing is enabled. But in the case of GPU-process
hosted media elements, don't _actually_ create a new layer if we don't have a valid
layerHostingContextID. Whats more, whenever the layerHostingContextID changes, cause the layer to
get re-created by clearing m_videoLayer.
This exposes a bug in RemoteLayerTreeHostIOS, where added layers are never added to the
m_videoLayers map, so when those layers are removed, resources inside VideoFullscreenManagerProxy
aren't released.
* Source/WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setContentsToVideoElement):
* Source/WebKit/UIProcess/RemoteLayerTree/ios/RemoteLayerTreeHostIOS.mm:
(WebKit::RemoteLayerTreeHost::makeNode):
* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::platformLayer const):
(WebKit::MediaPlayerPrivateRemote::setLayerHostingContextID):
Canonical link: https://commits.webkit.org/261455@main
More information about the webkit-changes
mailing list