Title: [251920] trunk
Revision
251920
Author
commit-qu...@webkit.org
Date
2019-11-01 08:57:34 -0700 (Fri, 01 Nov 2019)

Log Message

Picture-in-Picture layout test cases interfere with each other
https://bugs.webkit.org/show_bug.cgi?id=203614

Patch by Peng Liu <peng.l...@apple.com> on 2019-11-01
Reviewed by Eric Carlson.

Source/WebCore:

Fix test running issues, no new test is needed.

Add a member variable m_pictureInPictureAPITestEnabled to the HTMLVideoElement class.
When this variable is true, HTMLVideoElement::setFullscreenMode() will mock the
behavior of the Picture-in-Picture mode changing without the AVKit/CoreMedia involvement.
So we can run multiple layout test cases for Picture-in-Picture API simultaneously.
Note: this solution only tests the code for the Picture-in-Picture API implementation!
We still need to use the API tests to test the Picture-in-Picture implementation end-to-end.

* html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::setFullscreenMode):
(WebCore::HTMLVideoElement::setPictureInPictureAPITestEnabled):
* html/HTMLVideoElement.h:
* html/HTMLVideoElement.idl:
* testing/Internals.cpp:
(WebCore::Internals::setPictureInPictureAPITestEnabled):
* testing/Internals.h:
* testing/Internals.idl:

LayoutTests:

Use "internals.setPictureInPictureAPITestEnabled(video, true)" to test
the picture-in-picture API implementation without AVKit/CoreMedia stuffs.

* media/picture-in-picture-api-enter-pip-1-expected.txt:
* media/picture-in-picture-api-enter-pip-1.html:
* media/picture-in-picture-api-enter-pip-2-expected.txt:
* media/picture-in-picture-api-enter-pip-2.html:
* media/picture-in-picture-api-enter-pip-3-expected.txt:
* media/picture-in-picture-api-enter-pip-3.html:
* media/picture-in-picture-api-enter-pip-4-expected.txt:
* media/picture-in-picture-api-enter-pip-4.html:
* media/picture-in-picture-api-exit-pip-1-expected.txt:
* media/picture-in-picture-api-exit-pip-1.html:
* media/picture-in-picture-api-exit-pip-2-expected.txt:
* media/picture-in-picture-api-exit-pip-2.html:
* media/picture-in-picture-api-pip-events-expected.txt:
* media/picture-in-picture-api-pip-events.html:
* media/picture-in-picture-api-pip-window-expected.txt:
* media/picture-in-picture-api-pip-window.html:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (251919 => 251920)


--- trunk/LayoutTests/ChangeLog	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/ChangeLog	2019-11-01 15:57:34 UTC (rev 251920)
@@ -1,3 +1,30 @@
+2019-11-01  Peng Liu  <peng.l...@apple.com>
+
+        Picture-in-Picture layout test cases interfere with each other
+        https://bugs.webkit.org/show_bug.cgi?id=203614
+
+        Reviewed by Eric Carlson.
+
+        Use "internals.setPictureInPictureAPITestEnabled(video, true)" to test
+        the picture-in-picture API implementation without AVKit/CoreMedia stuffs.
+
+        * media/picture-in-picture-api-enter-pip-1-expected.txt:
+        * media/picture-in-picture-api-enter-pip-1.html:
+        * media/picture-in-picture-api-enter-pip-2-expected.txt:
+        * media/picture-in-picture-api-enter-pip-2.html:
+        * media/picture-in-picture-api-enter-pip-3-expected.txt:
+        * media/picture-in-picture-api-enter-pip-3.html:
+        * media/picture-in-picture-api-enter-pip-4-expected.txt:
+        * media/picture-in-picture-api-enter-pip-4.html:
+        * media/picture-in-picture-api-exit-pip-1-expected.txt:
+        * media/picture-in-picture-api-exit-pip-1.html:
+        * media/picture-in-picture-api-exit-pip-2-expected.txt:
+        * media/picture-in-picture-api-exit-pip-2.html:
+        * media/picture-in-picture-api-pip-events-expected.txt:
+        * media/picture-in-picture-api-pip-events.html:
+        * media/picture-in-picture-api-pip-window-expected.txt:
+        * media/picture-in-picture-api-pip-window.html:
+
 2019-11-01  Tim Horton  <timothy_hor...@apple.com>
 
         Turn on IOSurface support in the iOS Simulator

Modified: trunk/LayoutTests/media/picture-in-picture-api-enter-pip-1-expected.txt (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-enter-pip-1-expected.txt	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-enter-pip-1-expected.txt	2019-11-01 15:57:34 UTC (rev 251920)
@@ -1,6 +1,7 @@
 This tests that request Picture-in-Picture requires a user gesture.
 
 RUN(internals.settings.setAllowsPictureInPictureMediaPlayback(true))
+RUN(internals.setPictureInPictureAPITestEnabled(video, true))
 RUN(video.src = "" "content/test"))
 EVENT(canplaythrough)
 EXPECTED (error.name == 'NotAllowedError') OK

Modified: trunk/LayoutTests/media/picture-in-picture-api-enter-pip-1.html (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-enter-pip-1.html	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-enter-pip-1.html	2019-11-01 15:57:34 UTC (rev 251920)
@@ -8,6 +8,7 @@
             findMediaElement();
 
             run('internals.settings.setAllowsPictureInPictureMediaPlayback(true)');
+            run('internals.setPictureInPictureAPITestEnabled(video, true)');
             run('video.src = "" "content/test")');
             await waitFor(video, 'canplaythrough');
 

Modified: trunk/LayoutTests/media/picture-in-picture-api-enter-pip-2-expected.txt (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-enter-pip-2-expected.txt	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-enter-pip-2-expected.txt	2019-11-01 15:57:34 UTC (rev 251920)
@@ -1,6 +1,7 @@
 This tests that request Picture-in-Picture requires loaded metadata for the video element.
 
 RUN(internals.settings.setAllowsPictureInPictureMediaPlayback(true))
+RUN(internals.setPictureInPictureAPITestEnabled(video, true))
 EXPECTED (error.name == 'InvalidStateError') OK
 END OF TEST
 

Modified: trunk/LayoutTests/media/picture-in-picture-api-enter-pip-2.html (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-enter-pip-2.html	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-enter-pip-2.html	2019-11-01 15:57:34 UTC (rev 251920)
@@ -8,6 +8,7 @@
             findMediaElement();
 
             run('internals.settings.setAllowsPictureInPictureMediaPlayback(true)');
+            run('internals.setPictureInPictureAPITestEnabled(video, true)');
             runWithKeyDown(function() {
                 video.requestPictureInPicture()
                 .then(() => {

Modified: trunk/LayoutTests/media/picture-in-picture-api-enter-pip-3-expected.txt (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-enter-pip-3-expected.txt	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-enter-pip-3-expected.txt	2019-11-01 15:57:34 UTC (rev 251920)
@@ -1,6 +1,7 @@
 This tests that request Picture-in-Picture requires video track for the video element.
 
 RUN(internals.settings.setAllowsPictureInPictureMediaPlayback(true))
+RUN(internals.setPictureInPictureAPITestEnabled(video, true))
 RUN(video.src = "" "content/test"))
 EVENT(canplaythrough)
 EXPECTED (error.name == 'InvalidStateError') OK

Modified: trunk/LayoutTests/media/picture-in-picture-api-enter-pip-3.html (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-enter-pip-3.html	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-enter-pip-3.html	2019-11-01 15:57:34 UTC (rev 251920)
@@ -8,6 +8,7 @@
             findMediaElement();
 
             run('internals.settings.setAllowsPictureInPictureMediaPlayback(true)');
+            run('internals.setPictureInPictureAPITestEnabled(video, true)');
             run('video.src = "" "content/test")');
             await waitFor(video, 'canplaythrough');
             runWithKeyDown(function() {

Modified: trunk/LayoutTests/media/picture-in-picture-api-enter-pip-4-expected.txt (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-enter-pip-4-expected.txt	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-enter-pip-4-expected.txt	2019-11-01 15:57:34 UTC (rev 251920)
@@ -1,6 +1,7 @@
 This tests that request Picture-in-Picture resolves on user click.
 
 RUN(internals.settings.setAllowsPictureInPictureMediaPlayback(true))
+RUN(internals.setPictureInPictureAPITestEnabled(video, true))
 RUN(video.src = "" "content/test"))
 EVENT(canplaythrough)
 END OF TEST

Modified: trunk/LayoutTests/media/picture-in-picture-api-enter-pip-4.html (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-enter-pip-4.html	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-enter-pip-4.html	2019-11-01 15:57:34 UTC (rev 251920)
@@ -8,12 +8,16 @@
             findMediaElement();
 
             run('internals.settings.setAllowsPictureInPictureMediaPlayback(true)');
+            run('internals.setPictureInPictureAPITestEnabled(video, true)');
+
             run('video.src = "" "content/test")');
             await waitFor(video, 'canplaythrough');
             runWithKeyDown(function() {
                 video.requestPictureInPicture()
                 .then(() => {
-                    endTest();
+                    document.exitPictureInPicture().then(endTest).catch(() => {
+                        failTest('Failed to exit the Picture-in-Picture mode.');
+                    });
                 })
                 .catch(() => {
                     failTest('request Picture-in-Picture does not resolve on user click.');

Modified: trunk/LayoutTests/media/picture-in-picture-api-exit-pip-1-expected.txt (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-exit-pip-1-expected.txt	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-exit-pip-1-expected.txt	2019-11-01 15:57:34 UTC (rev 251920)
@@ -1,6 +1,7 @@
 This tests that exit Picture-in-Picture resolves when there is a Picture-in-Picture video.
 
 RUN(internals.settings.setAllowsPictureInPictureMediaPlayback(true))
+RUN(internals.setPictureInPictureAPITestEnabled(video, true))
 RUN(video.src = "" "content/test"))
 EVENT(canplaythrough)
 EVENT(enterpictureinpicture)

Modified: trunk/LayoutTests/media/picture-in-picture-api-exit-pip-1.html (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-exit-pip-1.html	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-exit-pip-1.html	2019-11-01 15:57:34 UTC (rev 251920)
@@ -8,18 +8,15 @@
             findMediaElement();
 
             run('internals.settings.setAllowsPictureInPictureMediaPlayback(true)');
+            run('internals.setPictureInPictureAPITestEnabled(video, true)');
+
             run('video.src = "" "content/test")');
             await waitFor(video, 'canplaythrough');
+
             runWithKeyDown(function() { video.requestPictureInPicture() });
             await waitFor(video, 'enterpictureinpicture');
-            runWithKeyDown(function() {
-                document.exitPictureInPicture()
-                .then(() => {
-                    endTest();
-                })
-                .catch(() => {
-                    failTest('Exit Picture-in-Picture resolves when there is a Picture-in-Picture video.')
-                });
+            document.exitPictureInPicture().then(endTest).catch(() => {
+                failTest('Failed to exit the Picture-in-Picture mode.');
             });
         });
     </script>

Modified: trunk/LayoutTests/media/picture-in-picture-api-exit-pip-2-expected.txt (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-exit-pip-2-expected.txt	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-exit-pip-2-expected.txt	2019-11-01 15:57:34 UTC (rev 251920)
@@ -1,5 +1,7 @@
 This tests that exit Picture-in-Picture rejects when there is no Picture-in-Picture video.
 
+RUN(internals.settings.setAllowsPictureInPictureMediaPlayback(true))
+RUN(internals.setPictureInPictureAPITestEnabled(video, true))
 EXPECTED (error.name == 'InvalidStateError') OK
 END OF TEST
 

Modified: trunk/LayoutTests/media/picture-in-picture-api-exit-pip-2.html (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-exit-pip-2.html	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-exit-pip-2.html	2019-11-01 15:57:34 UTC (rev 251920)
@@ -6,16 +6,18 @@
     <script>
         window.addEventListener('load', async event => {
             findMediaElement();
-            runWithKeyDown(function() {
-                document.exitPictureInPicture()
-                .then(() => {
-                    failTest('Exit Picture-in-Picture rejects when there is no Picture-in-Picture video.');
-                })
-                .catch(error => {
-                    window.error = error;
-                    testExpected('error.name', 'InvalidStateError');
-                    endTest();
-                });
+
+            run('internals.settings.setAllowsPictureInPictureMediaPlayback(true)');
+            run('internals.setPictureInPictureAPITestEnabled(video, true)');
+
+            document.exitPictureInPicture()
+            .then(() => {
+                failTest('Exit Picture-in-Picture rejects when there is no Picture-in-Picture video.');
+            })
+            .catch(error => {
+                window.error = error;
+                testExpected('error.name', 'InvalidStateError');
+                endTest();
             });
         });
     </script>

Modified: trunk/LayoutTests/media/picture-in-picture-api-pip-events-expected.txt (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-pip-events-expected.txt	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-pip-events-expected.txt	2019-11-01 15:57:34 UTC (rev 251920)
@@ -1,6 +1,7 @@
 This tests that events are fired correctly when a video element enters and exits the Picture-in-Picture mode.
 
 RUN(internals.settings.setAllowsPictureInPictureMediaPlayback(true))
+RUN(internals.setPictureInPictureAPITestEnabled(video, true))
 RUN(video.src = "" "content/test"))
 EVENT(canplaythrough)
 EVENT(enterpictureinpicture)

Modified: trunk/LayoutTests/media/picture-in-picture-api-pip-events.html (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-pip-events.html	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-pip-events.html	2019-11-01 15:57:34 UTC (rev 251920)
@@ -8,6 +8,7 @@
             findMediaElement();
 
             run('internals.settings.setAllowsPictureInPictureMediaPlayback(true)');
+            run('internals.setPictureInPictureAPITestEnabled(video, true)');
 
             run('video.src = "" "content/test")');
             await waitFor(video, 'canplaythrough');
@@ -14,8 +15,7 @@
 
             runWithKeyDown(function() { video.requestPictureInPicture(); });
             await waitFor(video, 'enterpictureinpicture');
-
-            runWithKeyDown(function() { document.exitPictureInPicture(); });
+            document.exitPictureInPicture();
             await waitFor(video, 'leavepictureinpicture');
 
             endTest();

Modified: trunk/LayoutTests/media/picture-in-picture-api-pip-window-expected.txt (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-pip-window-expected.txt	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-pip-window-expected.txt	2019-11-01 15:57:34 UTC (rev 251920)
@@ -1,6 +1,7 @@
 This tests that a pip window is returned correctly when a video element enters the Picture-in-Picture mode.
 
 RUN(internals.settings.setAllowsPictureInPictureMediaPlayback(true))
+RUN(internals.setPictureInPictureAPITestEnabled(video, true))
 RUN(video.src = "" "content/test"))
 EVENT(canplaythrough)
 EXPECTED (pipWindow.width > '0') OK

Modified: trunk/LayoutTests/media/picture-in-picture-api-pip-window.html (251919 => 251920)


--- trunk/LayoutTests/media/picture-in-picture-api-pip-window.html	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/LayoutTests/media/picture-in-picture-api-pip-window.html	2019-11-01 15:57:34 UTC (rev 251920)
@@ -8,6 +8,7 @@
             findMediaElement();
 
             run('internals.settings.setAllowsPictureInPictureMediaPlayback(true)');
+            run('internals.setPictureInPictureAPITestEnabled(video, true)');
 
             run('video.src = "" "content/test")');
             await waitFor(video, 'canplaythrough');
@@ -18,12 +19,16 @@
                     window.pipWindow = pipWindow;
                     testExpected('pipWindow.width', 0, '>');
                     testExpected('pipWindow.height', 0, '>');
-                    endTest();
+
+                    document.exitPictureInPicture().then(endTest).catch(() => {
+                        failTest('Failed to exit the Picture-in-Picture mode.');
+                    });
                 })
                 .catch(error => {
                     failTest("Failed to enter the Picture-in-Picture mode.");
                 });
             });
+
         });
     </script>
 </head>

Modified: trunk/Source/WebCore/ChangeLog (251919 => 251920)


--- trunk/Source/WebCore/ChangeLog	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/Source/WebCore/ChangeLog	2019-11-01 15:57:34 UTC (rev 251920)
@@ -1,3 +1,29 @@
+2019-11-01  Peng Liu  <peng.l...@apple.com>
+
+        Picture-in-Picture layout test cases interfere with each other
+        https://bugs.webkit.org/show_bug.cgi?id=203614
+
+        Reviewed by Eric Carlson.
+
+        Fix test running issues, no new test is needed.
+
+        Add a member variable m_pictureInPictureAPITestEnabled to the HTMLVideoElement class.
+        When this variable is true, HTMLVideoElement::setFullscreenMode() will mock the
+        behavior of the Picture-in-Picture mode changing without the AVKit/CoreMedia involvement.
+        So we can run multiple layout test cases for Picture-in-Picture API simultaneously.
+        Note: this solution only tests the code for the Picture-in-Picture API implementation!
+        We still need to use the API tests to test the Picture-in-Picture implementation end-to-end.
+
+        * html/HTMLVideoElement.cpp:
+        (WebCore::HTMLVideoElement::setFullscreenMode):
+        (WebCore::HTMLVideoElement::setPictureInPictureAPITestEnabled):
+        * html/HTMLVideoElement.h:
+        * html/HTMLVideoElement.idl:
+        * testing/Internals.cpp:
+        (WebCore::Internals::setPictureInPictureAPITestEnabled):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
 2019-11-01  Zalan Bujtas  <za...@apple.com>
 
         [LFC][IFC] Add support for text-align: justify

Modified: trunk/Source/WebCore/html/HTMLVideoElement.cpp (251919 => 251920)


--- trunk/Source/WebCore/html/HTMLVideoElement.cpp	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/Source/WebCore/html/HTMLVideoElement.cpp	2019-11-01 15:57:34 UTC (rev 251920)
@@ -449,6 +449,22 @@
 
 void HTMLVideoElement::setFullscreenMode(HTMLMediaElementEnums::VideoFullscreenMode mode)
 {
+#if ENABLE(PICTURE_IN_PICTURE_API)
+    if (m_pictureInPictureAPITestEnabled) {
+        if (mode == VideoFullscreenModePictureInPicture) {
+            fullscreenModeChanged(mode);
+            didBecomeFullscreenElement();
+            setVideoFullscreenFrame({0, 0, 100, 100});
+            return;
+        }
+
+        if (mode == VideoFullscreenModeNone) {
+            fullscreenModeChanged(mode);
+            return;
+        }
+    }
+#endif
+
     if (mode == VideoFullscreenModeNone && isFullscreen()) {
         exitFullscreen();
         return;
@@ -517,6 +533,11 @@
 {
     m_pictureInPictureObserver = observer;
 }
+
+void HTMLVideoElement::setPictureInPictureAPITestEnabled(bool enabled)
+{
+    m_pictureInPictureAPITestEnabled = enabled;
+}
 #endif
 
 #endif

Modified: trunk/Source/WebCore/html/HTMLVideoElement.h (251919 => 251920)


--- trunk/Source/WebCore/html/HTMLVideoElement.h	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/Source/WebCore/html/HTMLVideoElement.h	2019-11-01 15:57:34 UTC (rev 251920)
@@ -92,6 +92,7 @@
 #if ENABLE(PICTURE_IN_PICTURE_API)
     WEBCORE_EXPORT void didBecomeFullscreenElement() final;
     void setPictureInPictureObserver(PictureInPictureObserver*);
+    WEBCORE_EXPORT void setPictureInPictureAPITestEnabled(bool);
 #endif
 #endif
 
@@ -139,6 +140,8 @@
     bool m_waitingForPictureInPictureWindowFrame { false };
     bool m_isFullscreen { false };
     PictureInPictureObserver* m_pictureInPictureObserver { nullptr };
+
+    bool m_pictureInPictureAPITestEnabled { false };
 #endif
 };
 

Modified: trunk/Source/WebCore/html/HTMLVideoElement.idl (251919 => 251920)


--- trunk/Source/WebCore/html/HTMLVideoElement.idl	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/Source/WebCore/html/HTMLVideoElement.idl	2019-11-01 15:57:34 UTC (rev 251920)
@@ -25,6 +25,7 @@
 
 [
     Conditional=VIDEO,
+    ExportMacro=WEBCORE_EXPORT,
     JSGenerateToNativeObject,
 ] interface HTMLVideoElement : HTMLMediaElement {
     [CEReactions=NotNeeded, Reflect] attribute unsigned long width;

Modified: trunk/Source/WebCore/testing/Internals.cpp (251919 => 251920)


--- trunk/Source/WebCore/testing/Internals.cpp	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/Source/WebCore/testing/Internals.cpp	2019-11-01 15:57:34 UTC (rev 251920)
@@ -5273,6 +5273,13 @@
 }
 #endif
 
+#if ENABLE(PICTURE_IN_PICTURE_API)
+void Internals::setPictureInPictureAPITestEnabled(HTMLVideoElement& videoElement, bool enabled)
+{
+    videoElement.setPictureInPictureAPITestEnabled(enabled);
+}
+#endif
+
 void Internals::setMaxCanvasPixelMemory(unsigned size)
 {
     HTMLCanvasElement::setMaxPixelMemoryForTesting(size);

Modified: trunk/Source/WebCore/testing/Internals.h (251919 => 251920)


--- trunk/Source/WebCore/testing/Internals.h	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/Source/WebCore/testing/Internals.h	2019-11-01 15:57:34 UTC (rev 251920)
@@ -72,6 +72,7 @@
 class HTMLMediaElement;
 class HTMLPictureElement;
 class HTMLSelectElement;
+class HTMLVideoElement;
 class ImageData;
 class InspectorStubFrontend;
 class InternalSettings;
@@ -898,6 +899,10 @@
     void setMockWebAuthenticationConfiguration(const MockWebAuthenticationConfiguration&);
 #endif
 
+#if ENABLE(PICTURE_IN_PICTURE_API)
+    void setPictureInPictureAPITestEnabled(HTMLVideoElement&, bool);
+#endif
+
     int processIdentifier() const;
 
 private:

Modified: trunk/Source/WebCore/testing/Internals.idl (251919 => 251920)


--- trunk/Source/WebCore/testing/Internals.idl	2019-11-01 15:53:02 UTC (rev 251919)
+++ trunk/Source/WebCore/testing/Internals.idl	2019-11-01 15:57:34 UTC (rev 251920)
@@ -813,4 +813,6 @@
     void addPrefetchLoadEventListener(HTMLLinkElement link, EventListener? callback);
 
     [Conditional=WEB_AUTHN] void setMockWebAuthenticationConfiguration(MockWebAuthenticationConfiguration configuration);
+
+    [Conditional=PICTURE_IN_PICTURE_API] void setPictureInPictureAPITestEnabled(HTMLVideoElement videoElement, boolean enabled);
 };
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to