Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 22443b9b5c910d7e3c077d847507b189b61e0688
      
https://github.com/WebKit/WebKit/commit/22443b9b5c910d7e3c077d847507b189b61e0688
  Author: Jean-Yves Avenard <[email protected]>
  Date:   2026-07-11 (Sat, 11 Jul 2026)

  Changed paths:
    M Source/WebCore/html/HTMLMediaElement.cpp
    M Source/WebCore/html/HTMLMediaElement.h
    M Source/WebCore/platform/graphics/AudioVideoRenderer.h
    M Source/WebCore/platform/graphics/MediaPlayer.cpp
    M Source/WebCore/platform/graphics/MediaPlayer.h
    M Source/WebCore/platform/graphics/MediaPlayerPrivate.cpp
    M Source/WebCore/platform/graphics/MediaPlayerPrivate.h
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm
    M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h
    M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm
    M Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.cpp
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h
    M Source/WebKit/GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm
    M Source/WebKit/Platform/cocoa/LayerHostingContextManager.h
    M Source/WebKit/Platform/cocoa/LayerHostingContextManager.mm
    M Source/WebKit/WebProcess/GPU/media/AudioVideoRendererRemote.cpp
    M Source/WebKit/WebProcess/GPU/media/AudioVideoRendererRemote.h
    M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp
    M Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h
    M Source/WebKit/WebProcess/cocoa/VideoPresentationManager.mm

  Log Message:
  -----------
  Have requestHostingContext return a NativePromise
https://bugs.webkit.org/show_bug.cgi?id=319091
rdar://181900927

Reviewed by Youenn Fablet.

Replace the CompletionHandler arguments and have related methods return a 
NativePromise
instead.
This conversion process exposed several issues:
1- CompletionHandler was never called on error (contextID would have been 
detected as not changing and code returned early)
2- In the MediaPlayerPrivateMediaStreamAVFObjC should more than one call
be made to requestHostingContext, only the last CompletionHandler would have 
been resolved.
We fix those.

Covered by existing tests

* Source/WebCore/html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::requestHostingContext):
* Source/WebCore/html/HTMLMediaElement.h:
* Source/WebCore/platform/graphics/AudioVideoRenderer.h:
(WebCore::VideoInterface::requestHostingContext):
* Source/WebCore/platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::requestHostingContext):
* Source/WebCore/platform/graphics/MediaPlayer.h:
* Source/WebCore/platform/graphics/MediaPlayerPrivate.cpp:
(WebCore::MediaPlayerPrivateInterface::requestHostingContext):
* Source/WebCore/platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::requestHostingContext): Deleted.
* 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
* 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::hostingContext const):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::requestHostingContext):
* 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::~MediaPlayerPrivateMediaStreamAVFObjC):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::layersAreInitialized):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::requestHostingContext):
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h:
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm:
(WebCore::MediaPlayerPrivateWebM::requestHostingContext):
* Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.cpp:
(WebKit::RemoteAudioVideoRendererProxyManager::requestHostingContext):
* Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::requestHostingContext):
* Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h:
* Source/WebKit/GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
(WebKit::RemoteMediaPlayerProxy::requestHostingContext):
* Source/WebKit/Platform/cocoa/LayerHostingContextManager.h:
* Source/WebKit/Platform/cocoa/LayerHostingContextManager.mm:
(WebKit::LayerHostingContextManager::~LayerHostingContextManager):
(WebKit::LayerHostingContextManager::requestHostingContext):
(WebKit::LayerHostingContextManager::createHostingContextIfNeeded):
* Source/WebKit/WebProcess/GPU/media/AudioVideoRendererRemote.cpp:
(WebKit::AudioVideoRendererRemote::requestHostingContext):
(WebKit::AudioVideoRendererRemote::setLayerHostingContext):
* Source/WebKit/WebProcess/GPU/media/AudioVideoRendererRemote.h:
* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::~MediaPlayerPrivateRemote):
(WebKit::MediaPlayerPrivateRemote::requestHostingContext):
(WebKit::MediaPlayerPrivateRemote::setLayerHostingContext):
* Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
* Source/WebKit/WebProcess/cocoa/VideoPresentationManager.mm:
(WebKit::VideoPresentationManager::enterVideoFullscreenForVideoElement):

Canonical link: https://commits.webkit.org/316960@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to