Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 5f4a06b21d82b347d6f091ca79af9bcfa3a8a834
      
https://github.com/WebKit/WebKit/commit/5f4a06b21d82b347d6f091ca79af9bcfa3a8a834
  Author: Youenn Fablet <you...@apple.com>
  Date:   2024-07-09 (Tue, 09 Jul 2024)

  Changed paths:
    M Source/WebCore/html/HTMLVideoElement.cpp
    M Source/WebCore/html/HTMLVideoElement.h
    M Source/WebCore/page/Page.cpp
    M Source/WebCore/page/Page.h
    M Source/WebCore/page/PageConfiguration.h
    M Source/WebCore/platform/graphics/MediaPlayer.cpp
    M Source/WebCore/platform/graphics/MediaPlayer.h
    M Source/WebCore/platform/graphics/avfoundation/SampleBufferDisplayLayer.h
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h
    M 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm
    M Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h
    M 
Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxyConfiguration.serialization.in
    M Source/WebKit/GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm
    M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp
    M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h
    M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp
    M Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h
    M 
Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.messages.in
    M Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp
    M Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.cpp
    M Source/WebKit/WebProcess/WebPage/WebPage.h

  Log Message:
  -----------
  [iOS] Allow media to play in lock screen
https://bugs.webkit.org/show_bug.cgi?id=271228
rdar://122881278

Reviewed by Jean-Yves Avenard.

To allow media to play in lock screen, we need to create the layer hosting 
context canShowWhileLocked option in GPUProcess.
We pipe it from WebProcess to GPUProcess for 
RemoteSampleBufferDisplayLayerManager and RemoteMediaPlayerProxy code paths.
We introduce a MediaPlayer getter which is implemented in HTMLVideoElement by 
looking at its page object.

We move the page canShowWhileLocked boolean from WebKit::WebPage to 
WebCore::Page so that HTMLVideoElement gets access to it.

* Source/WebCore/html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::canShowWhileLocked const):
* Source/WebCore/html/HTMLVideoElement.h:
* Source/WebCore/page/Page.cpp:
(WebCore::Page::Page):
* Source/WebCore/page/Page.h:
(WebCore::Page::canShowWhileLocked const):
* Source/WebCore/page/PageConfiguration.h:
* Source/WebCore/platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::canShowWhileLocked const):
* Source/WebCore/platform/graphics/MediaPlayer.h:
(WebCore::MediaPlayerClient::canShowWhileLocked const):
* Source/WebCore/platform/graphics/avfoundation/SampleBufferDisplayLayer.h:
(WebCore::SampleBufferDisplayLayer::canShowWhileLocked):
* 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
* 
Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::canShowWhileLocked const):
* Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxyConfiguration.h:
* 
Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxyConfiguration.serialization.in:
* Source/WebKit/GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
(WebKit::RemoteMediaPlayerProxy::mediaPlayerRenderingModeChanged):
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.cpp:
(WebKit::RemoteSampleBufferDisplayLayer::initialize):
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayer.h:
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.cpp:
(WebKit::RemoteSampleBufferDisplayLayerManager::createLayer):
* Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.h:
* 
Source/WebKit/GPUProcess/webrtc/RemoteSampleBufferDisplayLayerManager.messages.in:
* Source/WebKit/WebProcess/GPU/media/RemoteMediaPlayerManager.cpp:
(WebKit::RemoteMediaPlayerManager::createRemoteMediaPlayer):
* Source/WebKit/WebProcess/GPU/webrtc/SampleBufferDisplayLayer.cpp:
(WebKit::SampleBufferDisplayLayer::initialize):
* Source/WebKit/WebProcess/WebPage/WebPage.cpp:
(WebKit::m_textAnimationController):
* Source/WebKit/WebProcess/WebPage/WebPage.h:
(WebKit::WebPage::canShowWhileLocked const):

Canonical link: https://commits.webkit.org/280765@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

Reply via email to