⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 284837 in webkit


Ignore:
Timestamp:
Oct 25, 2021, 2:51:20 PM (5 years ago)
Author:
Alan Coon
Message:

Cherry-pick r284294. rdar://problem/84630302

[iOS] Screen Sharing doesn't switch to AirPlay when <video> enters fullscreen mode
https://bugs.webkit.org/show_bug.cgi?id=231807
<rdar://82995799>

Reviewed by Eric Carlson.

WebKit will allow AVPlayer to switch to AirPlay Video mode from Screen Sharing when a
<video> element is in fullscreen mode. However, the fullscreen state this code depends on
is not stored in the GPU process.

Implement RemoteMediaPlayerProxy::mediaPlayerFullscreenMode()
and ::mediaPlayerIsVideoFullscreenStandby().

  • GPUProcess/media/RemoteMediaPlayerProxy.cpp: (WebKit::RemoteMediaPlayerProxy::setVideoFullscreenMode): (WebKit::RemoteMediaPlayerProxy::videoFullscreenStandbyChanged): (WebKit::RemoteMediaPlayerProxy::mediaPlayerFullscreenMode const): (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideoFullscreenStandby const):
  • GPUProcess/media/RemoteMediaPlayerProxy.h:
  • GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
  • WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::videoFullscreenStandbyChanged):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284294 268f45cc-cd09-0410-ab3c-d52691b4dbfc

Location:
branches/safari-612-branch/Source/WebKit
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • branches/safari-612-branch/Source/WebKit/ChangeLog

    r284834 r284837  
     12021-10-25  Null  <null@apple.com>
     2
     3        Cherry-pick r284294. rdar://problem/84630302
     4
     5    [iOS] Screen Sharing doesn't switch to AirPlay when <video> enters fullscreen mode
     6    https://bugs.webkit.org/show_bug.cgi?id=231807
     7    <rdar://82995799>
     8   
     9    Reviewed by Eric Carlson.
     10   
     11    WebKit will allow AVPlayer to switch to AirPlay Video mode from Screen Sharing when a
     12    <video> element is in fullscreen mode. However, the fullscreen state this code depends on
     13    is not stored in the GPU process.
     14   
     15    Implement RemoteMediaPlayerProxy::mediaPlayerFullscreenMode()
     16    and ::mediaPlayerIsVideoFullscreenStandby().
     17   
     18    * GPUProcess/media/RemoteMediaPlayerProxy.cpp:
     19    (WebKit::RemoteMediaPlayerProxy::setVideoFullscreenMode):
     20    (WebKit::RemoteMediaPlayerProxy::videoFullscreenStandbyChanged):
     21    (WebKit::RemoteMediaPlayerProxy::mediaPlayerFullscreenMode const):
     22    (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideoFullscreenStandby const):
     23    * GPUProcess/media/RemoteMediaPlayerProxy.h:
     24    * GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
     25    * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
     26    (WebKit::MediaPlayerPrivateRemote::videoFullscreenStandbyChanged):
     27   
     28   
     29    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284294 268f45cc-cd09-0410-ab3c-d52691b4dbfc
     30
     31    2021-10-15  Jer Noble  <jer.noble@apple.com>
     32
     33            [iOS] Screen Sharing doesn't switch to AirPlay when <video> enters fullscreen mode
     34            https://bugs.webkit.org/show_bug.cgi?id=231807
     35            <rdar://82995799>
     36
     37            Reviewed by Eric Carlson.
     38
     39            WebKit will allow AVPlayer to switch to AirPlay Video mode from Screen Sharing when a
     40            <video> element is in fullscreen mode. However, the fullscreen state this code depends on
     41            is not stored in the GPU process.
     42
     43            Implement RemoteMediaPlayerProxy::mediaPlayerFullscreenMode()
     44            and ::mediaPlayerIsVideoFullscreenStandby().
     45
     46            * GPUProcess/media/RemoteMediaPlayerProxy.cpp:
     47            (WebKit::RemoteMediaPlayerProxy::setVideoFullscreenMode):
     48            (WebKit::RemoteMediaPlayerProxy::videoFullscreenStandbyChanged):
     49            (WebKit::RemoteMediaPlayerProxy::mediaPlayerFullscreenMode const):
     50            (WebKit::RemoteMediaPlayerProxy::mediaPlayerIsVideoFullscreenStandby const):
     51            * GPUProcess/media/RemoteMediaPlayerProxy.h:
     52            * GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
     53            * WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
     54            (WebKit::MediaPlayerPrivateRemote::videoFullscreenStandbyChanged):
     55
    1562021-10-25  Null  <null@apple.com>
    257
  • branches/safari-612-branch/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp

    r284834 r284837  
    320320void RemoteMediaPlayerProxy::setVideoFullscreenMode(MediaPlayer::VideoFullscreenMode mode)
    321321{
     322    m_fullscreenMode = mode;
    322323    m_player->setVideoFullscreenMode(mode);
    323 
    324 }
    325 
    326 void RemoteMediaPlayerProxy::videoFullscreenStandbyChanged()
    327 {
     324}
     325
     326void RemoteMediaPlayerProxy::videoFullscreenStandbyChanged(bool standby)
     327{
     328    m_videoFullscreenStandby = standby;
    328329    m_player->videoFullscreenStandbyChanged();
    329330}
     
    818819MediaPlayerEnums::VideoFullscreenMode RemoteMediaPlayerProxy::mediaPlayerFullscreenMode() const
    819820{
    820     notImplemented();
    821     return MediaPlayerEnums::VideoFullscreenModeNone;
     821    return m_fullscreenMode;
    822822}
    823823
    824824bool RemoteMediaPlayerProxy::mediaPlayerIsVideoFullscreenStandby() const
    825825{
    826     notImplemented();
    827     return false;
     826    return m_videoFullscreenStandby;
    828827}
    829828#endif
  • branches/safari-612-branch/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h

    r284834 r284837  
    104104    void updateVideoFullscreenInlineImage();
    105105    void setVideoFullscreenMode(WebCore::MediaPlayer::VideoFullscreenMode);
    106     void videoFullscreenStandbyChanged();
     106    void videoFullscreenStandbyChanged(bool);
    107107#endif
    108108
     
    355355    bool m_bufferedChanged { true };
    356356    bool m_renderingCanBeAccelerated { false };
     357    WebCore::MediaPlayer::VideoFullscreenMode m_fullscreenMode { WebCore::MediaPlayer::VideoFullscreenModeNone };
     358    bool m_videoFullscreenStandby { false };
    357359
    358360#if ENABLE(LEGACY_ENCRYPTED_MEDIA) && ENABLE(ENCRYPTED_MEDIA)
  • branches/safari-612-branch/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in

    r284834 r284837  
    6161    SetVideoFullscreenMode(WebCore::MediaPlayer::VideoFullscreenMode mode)
    6262    SetVideoFullscreenGravity(enum:uint8_t WebCore::MediaPlayerEnums::VideoGravity gravity)
    63     VideoFullscreenStandbyChanged()
     63    VideoFullscreenStandbyChanged(bool standby)
    6464#endif
    6565
  • branches/safari-612-branch/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp

    r282945 r284837  
    851851void MediaPlayerPrivateRemote::videoFullscreenStandbyChanged()
    852852{
    853     connection().send(Messages::RemoteMediaPlayerProxy::VideoFullscreenStandbyChanged(), m_id);
     853    RefPtr player = m_player.get();
     854    if (!player)
     855        return;
     856
     857    connection().send(Messages::RemoteMediaPlayerProxy::VideoFullscreenStandbyChanged(player->isVideoFullscreenStandby()), m_id);
    854858}
    855859#endif
Note: See TracChangeset for help on using the changeset viewer.