Title: [284294] trunk/Source/WebKit
- Revision
- 284294
- Author
- [email protected]
- Date
- 2021-10-15 17:00:09 -0700 (Fri, 15 Oct 2021)
Log Message
[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):
Modified Paths
Diff
Modified: trunk/Source/WebKit/ChangeLog (284293 => 284294)
--- trunk/Source/WebKit/ChangeLog 2021-10-15 23:57:12 UTC (rev 284293)
+++ trunk/Source/WebKit/ChangeLog 2021-10-16 00:00:09 UTC (rev 284294)
@@ -1,3 +1,28 @@
+2021-10-15 Jer Noble <[email protected]>
+
+ [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):
+
2021-10-15 Per Arne Vollan <[email protected]>
Some canvas tests are failing
Modified: trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp (284293 => 284294)
--- trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp 2021-10-15 23:57:12 UTC (rev 284293)
+++ trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.cpp 2021-10-16 00:00:09 UTC (rev 284294)
@@ -321,12 +321,13 @@
void RemoteMediaPlayerProxy::setVideoFullscreenMode(MediaPlayer::VideoFullscreenMode mode)
{
+ m_fullscreenMode = mode;
m_player->setVideoFullscreenMode(mode);
-
}
-void RemoteMediaPlayerProxy::videoFullscreenStandbyChanged()
+void RemoteMediaPlayerProxy::videoFullscreenStandbyChanged(bool standby)
{
+ m_videoFullscreenStandby = standby;
m_player->videoFullscreenStandbyChanged();
}
#endif
@@ -819,14 +820,12 @@
#if ENABLE(VIDEO_PRESENTATION_MODE)
MediaPlayerEnums::VideoFullscreenMode RemoteMediaPlayerProxy::mediaPlayerFullscreenMode() const
{
- notImplemented();
- return MediaPlayerEnums::VideoFullscreenModeNone;
+ return m_fullscreenMode;
}
bool RemoteMediaPlayerProxy::mediaPlayerIsVideoFullscreenStandby() const
{
- notImplemented();
- return false;
+ return m_videoFullscreenStandby;
}
#endif
Modified: trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h (284293 => 284294)
--- trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h 2021-10-15 23:57:12 UTC (rev 284293)
+++ trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.h 2021-10-16 00:00:09 UTC (rev 284294)
@@ -106,7 +106,7 @@
#if ENABLE(VIDEO_PRESENTATION_MODE)
void updateVideoFullscreenInlineImage();
void setVideoFullscreenMode(WebCore::MediaPlayer::VideoFullscreenMode);
- void videoFullscreenStandbyChanged();
+ void videoFullscreenStandbyChanged(bool);
#endif
void setBufferingPolicy(WebCore::MediaPlayer::BufferingPolicy);
@@ -357,6 +357,8 @@
bool m_bufferedChanged { true };
bool m_renderingCanBeAccelerated { false };
+ WebCore::MediaPlayer::VideoFullscreenMode m_fullscreenMode { WebCore::MediaPlayer::VideoFullscreenModeNone };
+ bool m_videoFullscreenStandby { false };
#if ENABLE(LEGACY_ENCRYPTED_MEDIA) && ENABLE(ENCRYPTED_MEDIA)
bool m_shouldContinueAfterKeyNeeded { false };
Modified: trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in (284293 => 284294)
--- trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in 2021-10-15 23:57:12 UTC (rev 284293)
+++ trunk/Source/WebKit/GPUProcess/media/RemoteMediaPlayerProxy.messages.in 2021-10-16 00:00:09 UTC (rev 284294)
@@ -60,7 +60,7 @@
UpdateVideoFullscreenInlineImage()
SetVideoFullscreenMode(WebCore::MediaPlayer::VideoFullscreenMode mode)
SetVideoFullscreenGravity(enum:uint8_t WebCore::MediaPlayerEnums::VideoGravity gravity)
- VideoFullscreenStandbyChanged()
+ VideoFullscreenStandbyChanged(bool standby)
#endif
SetBufferingPolicy(WebCore::MediaPlayer::BufferingPolicy policy)
Modified: trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp (284293 => 284294)
--- trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp 2021-10-15 23:57:12 UTC (rev 284293)
+++ trunk/Source/WebKit/WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp 2021-10-16 00:00:09 UTC (rev 284294)
@@ -851,7 +851,11 @@
void MediaPlayerPrivateRemote::videoFullscreenStandbyChanged()
{
- connection().send(Messages::RemoteMediaPlayerProxy::VideoFullscreenStandbyChanged(), m_id);
+ RefPtr player = m_player.get();
+ if (!player)
+ return;
+
+ connection().send(Messages::RemoteMediaPlayerProxy::VideoFullscreenStandbyChanged(player->isVideoFullscreenStandby()), m_id);
}
#endif
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes