Title: [255008] branches/safari-609-branch/Source/WebCore
- Revision
- 255008
- Author
- [email protected]
- Date
- 2020-01-23 13:43:29 -0800 (Thu, 23 Jan 2020)
Log Message
Cherry-pick r254512. rdar://problem/58606195
A video element cannot enter fullscreen from PiP mode
https://bugs.webkit.org/show_bug.cgi?id=204468
Reviewed by Eric Carlson.
This patch fixes two issues:
- Make sure the message exchanges between WebContent and UI process can complete in the scenario that switching to fullscreen from PiP.
- Do not send fullscreenModeChanged event with mode = 3 (both fullscreen and Picture-in-Picture) to WebContent process.
We need to use API tests to verify the fix.
No new tests are added because of webkit.org/b/203724.
* platform/ios/VideoFullscreenInterfaceAVKit.mm:
(VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
(VideoFullscreenInterfaceAVKit::doEnterFullscreen):
(VideoFullscreenInterfaceAVKit::setMode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Modified Paths
Diff
Modified: branches/safari-609-branch/Source/WebCore/ChangeLog (255007 => 255008)
--- branches/safari-609-branch/Source/WebCore/ChangeLog 2020-01-23 21:43:26 UTC (rev 255007)
+++ branches/safari-609-branch/Source/WebCore/ChangeLog 2020-01-23 21:43:29 UTC (rev 255008)
@@ -1,5 +1,48 @@
2020-01-23 Russell Epstein <[email protected]>
+ Cherry-pick r254512. rdar://problem/58606195
+
+ A video element cannot enter fullscreen from PiP mode
+ https://bugs.webkit.org/show_bug.cgi?id=204468
+
+ Reviewed by Eric Carlson.
+
+ This patch fixes two issues:
+ - Make sure the message exchanges between WebContent and UI process can complete in the scenario that switching to fullscreen from PiP.
+ - Do not send fullscreenModeChanged event with mode = 3 (both fullscreen and Picture-in-Picture) to WebContent process.
+
+ We need to use API tests to verify the fix.
+ No new tests are added because of webkit.org/b/203724.
+
+ * platform/ios/VideoFullscreenInterfaceAVKit.mm:
+ (VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
+ (VideoFullscreenInterfaceAVKit::doEnterFullscreen):
+ (VideoFullscreenInterfaceAVKit::setMode):
+
+
+ git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254512 268f45cc-cd09-0410-ab3c-d52691b4dbfc
+
+ 2020-01-14 Peng Liu <[email protected]>
+
+ A video element cannot enter fullscreen from PiP mode
+ https://bugs.webkit.org/show_bug.cgi?id=204468
+
+ Reviewed by Eric Carlson.
+
+ This patch fixes two issues:
+ - Make sure the message exchanges between WebContent and UI process can complete in the scenario that switching to fullscreen from PiP.
+ - Do not send fullscreenModeChanged event with mode = 3 (both fullscreen and Picture-in-Picture) to WebContent process.
+
+ We need to use API tests to verify the fix.
+ No new tests are added because of webkit.org/b/203724.
+
+ * platform/ios/VideoFullscreenInterfaceAVKit.mm:
+ (VideoFullscreenInterfaceAVKit::didStopPictureInPicture):
+ (VideoFullscreenInterfaceAVKit::doEnterFullscreen):
+ (VideoFullscreenInterfaceAVKit::setMode):
+
+2020-01-23 Russell Epstein <[email protected]>
+
Cherry-pick r254497. rdar://problem/58606212
REGRESSION (Catalina) non-scrolling iframe prevents document scrolling
Modified: branches/safari-609-branch/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm (255007 => 255008)
--- branches/safari-609-branch/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm 2020-01-23 21:43:26 UTC (rev 255007)
+++ branches/safari-609-branch/Source/WebCore/platform/ios/VideoFullscreenInterfaceAVKit.mm 2020-01-23 21:43:29 UTC (rev 255008)
@@ -1075,6 +1075,9 @@
if (m_exitFullscreenNeedsExitPictureInPicture)
doExitFullscreen();
+
+ if (m_enterFullscreenNeedsExitPictureInPicture)
+ doEnterFullscreen();
return;
}
@@ -1317,6 +1320,7 @@
[[m_playerViewController view] layoutIfNeeded];
if (m_targetMode.hasFullscreen() && !m_currentMode.hasFullscreen()) {
m_enterFullscreenNeedsEnterFullscreen = true;
+ [m_window setHidden:NO];
[m_playerViewController enterFullScreenAnimated:YES completionHandler:[this, protectedThis = makeRefPtr(this)] (BOOL success, NSError *error) {
enterFullscreenHandler(success, error);
}];
@@ -1468,8 +1472,10 @@
return;
m_currentMode.setMode(mode);
+ // Mode::mode() can be 3 (VideoFullscreenModeStandard | VideoFullscreenModePictureInPicture).
+ // HTMLVideoElement does not expect such a value in the fullscreenModeChanged() callback.
if (m_videoFullscreenModel)
- m_videoFullscreenModel->fullscreenModeChanged(m_currentMode.mode());
+ m_videoFullscreenModel->fullscreenModeChanged(mode);
}
void VideoFullscreenInterfaceAVKit::clearMode(HTMLMediaElementEnums::VideoFullscreenMode mode)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes