Branch: refs/heads/main
Home: https://github.com/WebKit/WebKit
Commit: 53acf55d821f527c352c60180d58a03631c612d5
https://github.com/WebKit/WebKit/commit/53acf55d821f527c352c60180d58a03631c612d5
Author: Jean-Yves Avenard <[email protected]>
Date: 2025-11-24 (Mon, 24 Nov 2025)
Changed paths:
M Source/WebCore/platform/graphics/AudioVideoRenderer.h
M Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.h
M Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.mm
M
Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm
M Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm
M Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.cpp
M Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.h
M
Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.messages.in
M Source/WebKit/WebProcess/GPU/media/AudioVideoRendererRemote.cpp
M Source/WebKit/WebProcess/GPU/media/AudioVideoRendererRemote.h
Log Message:
-----------
AudioVideoRenderer::requestMediaDataWhenReady should return a NativePromise
https://bugs.webkit.org/show_bug.cgi?id=303017
rdar://165288972
Reviewed by Gerald Squelart.
Following 303456@main, AudioVideoRenderer::requestMediaDataWhenReady will
only ever call once the callback provided. To enforce it at the API level
we make it return a `RequestPromise` instead.
NativePromise also ensures that the callback is always executed on the expected
workqueue/thread.
Remove AudioVideoRenderer::stopRequestingMediaData API as it's no longer
used.
No change in existing behaviour. Covered by existing tests.
* Source/WebCore/platform/graphics/AudioVideoRenderer.h:
* Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.h:
* Source/WebCore/platform/graphics/avfoundation/AudioVideoRendererAVFObjC.mm:
(WebCore::AudioVideoRendererAVFObjC::requestMediaDataWhenReady):
(WebCore::AudioVideoRendererAVFObjC::audioTrackPropertiesFor):
(WebCore::AudioVideoRendererAVFObjC::stopRequestingMediaData): Deleted.
(WebCore::AudioVideoRendererAVFObjC::setHasRequestedAudioDataWhenReady):
Deleted.
(WebCore::AudioVideoRendererAVFObjC::hasRequestedAudioDataWhenReady): Deleted.
*
Source/WebCore/platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::notifyClientWhenReadyForMoreSamples):
* Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm:
(WebCore::MediaPlayerPrivateWebM::notifyClientWhenReadyForMoreSamples):
* Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.cpp:
(WebKit::RemoteAudioVideoRendererProxyManager::requestMediaDataWhenReady):
(WebKit::RemoteAudioVideoRendererProxyManager::stopRequestingMediaData):
Deleted.
* Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.h:
*
Source/WebKit/GPUProcess/media/RemoteAudioVideoRendererProxyManager.messages.in:
* Source/WebKit/WebProcess/GPU/media/AudioVideoRendererRemote.cpp:
(WebKit::AudioVideoRendererRemote::requestMediaDataWhenReady):
(WebKit::AudioVideoRendererRemote::resolveRequestMediaDataWhenReadyIfNeeded):
(WebKit::AudioVideoRendererRemote::stopRequestingMediaData): Deleted.
* Source/WebKit/WebProcess/GPU/media/AudioVideoRendererRemote.h: HashMap doesn't
play well with object (AutoRejectProducer) that have a delete copy constructor.
AutoRejectProducer contains a LogSiteIdentifier which has const member. So we
have to use an std::unique_ptr instead.
Canonical link: https://commits.webkit.org/303486@main
To unsubscribe from these emails, change your notification settings at
https://github.com/WebKit/WebKit/settings/notifications