For <video> element, use video fullscreen instead of element fullscreen.
authorcommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 7 Jul 2018 00:15:26 +0000 (00:15 +0000)
committercommit-queue@webkit.org <commit-queue@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 7 Jul 2018 00:15:26 +0000 (00:15 +0000)
https://bugs.webkit.org/show_bug.cgi?id=186093
rdar://problem/40144751

Patch by Jeremy Jones <jeremyj@apple.com> on 2018-07-06
Reviewed by Jer Noble.

Some pages use webkitRequestFullscreen directly on the video element, without any custom controls.
This will prevent native fullscreeen presentation mode conrols from being used.

This change makes webkitRequestFullscreen on a video element call webKitSetPresentationMode.

* dom/Element.h:
* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::webkitRequestFullscreen):
* html/HTMLVideoElement.h:

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

Source/WebCore/ChangeLog
Source/WebCore/dom/Element.h
Source/WebCore/html/HTMLVideoElement.cpp
Source/WebCore/html/HTMLVideoElement.h

index 4fc9a7f..ea170f6 100644 (file)
@@ -1,3 +1,21 @@
+2018-07-06  Jeremy Jones  <jeremyj@apple.com>
+
+        For <video> element, use video fullscreen instead of element fullscreen.
+        https://bugs.webkit.org/show_bug.cgi?id=186093
+        rdar://problem/40144751
+
+        Reviewed by Jer Noble.
+
+        Some pages use webkitRequestFullscreen directly on the video element, without any custom controls.
+        This will prevent native fullscreeen presentation mode conrols from being used.
+
+        This change makes webkitRequestFullscreen on a video element call webKitSetPresentationMode.
+
+        * dom/Element.h:
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::webkitRequestFullscreen):
+        * html/HTMLVideoElement.h:
+
 2018-07-06  Youenn Fablet  <youenn@apple.com>
 
         WebRTC MediaStreamTrack Enable / Disable causes video delay / lag
index fbdbe6b..842a208 100644 (file)
@@ -477,7 +477,7 @@ public:
     WEBCORE_EXPORT bool containsFullScreenElement() const;
     void setContainsFullScreenElement(bool);
     void setContainsFullScreenElementOnAncestorsCrossingFrameBoundaries(bool);
-    WEBCORE_EXPORT void webkitRequestFullscreen();
+    WEBCORE_EXPORT virtual void webkitRequestFullscreen();
 #endif
 
 #if ENABLE(POINTER_LOCK)
index 908ed4c..f4149b2 100644 (file)
@@ -191,6 +191,14 @@ bool HTMLVideoElement::supportsFullscreen(HTMLMediaElementEnums::VideoFullscreen
 #endif // PLATFORM(IOS)
 }
 
+
+#if ENABLE(FULLSCREEN_API) && PLATFORM(IOS)
+void HTMLVideoElement::webkitRequestFullscreen()
+{
+    webkitSetPresentationMode(HTMLVideoElement::VideoPresentationMode::Fullscreen);
+}
+#endif
+
 unsigned HTMLVideoElement::videoWidth() const
 {
     if (!player())
index cb72b7c..40a7af3 100644 (file)
@@ -61,6 +61,10 @@ public:
     unsigned webkitDroppedFrameCount() const;
 #endif
 
+#if ENABLE(FULLSCREEN_API) && PLATFORM(IOS)
+    void webkitRequestFullscreen() override;
+#endif
+
     // Used by canvas to gain raw pixel access
     void paintCurrentFrameInContext(GraphicsContext&, const FloatRect&);