Title: [213994] trunk
Revision
213994
Author
commit-qu...@webkit.org
Date
2017-03-15 11:21:18 -0700 (Wed, 15 Mar 2017)

Log Message

[Modern Media Controls] Tracks menu overlaps controls bar in fullscreen
https://bugs.webkit.org/show_bug.cgi?id=169670
<rdar://problem/31060086>
Source/WebCore:

Patch by Antoine Quint <grao...@apple.com> on 2017-03-15
Reviewed by Eric Carlson.

It used to be that the top of the tracks button was the same as the top of the controls
bar, but that changed when we fixed https://bugs.webkit.org/show_bug.cgi?id=169412. We
now use the top of the controls bar to computed the y-position for the tracks panel.

We are not adding a new test, instead we're unflaking a test that started failing
reliably once we fixed https://bugs.webkit.org/show_bug.cgi?id=169412.

* Modules/modern-media-controls/controls/macos-media-controls.js:
(MacOSMediaControls.prototype.showTracksPanel):

LayoutTests:

Patch by Antoine Quint <grao...@apple.com> on 2017-03-15
Reviewed by Eric Carlson.

Unflake a test that checks the tracks panel position in fullscreen.

* media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt:
* media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html:
* platform/mac/TestExpectations:

Modified Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (213993 => 213994)


--- trunk/LayoutTests/ChangeLog	2017-03-15 18:15:33 UTC (rev 213993)
+++ trunk/LayoutTests/ChangeLog	2017-03-15 18:21:18 UTC (rev 213994)
@@ -1,5 +1,19 @@
 2017-03-15  Antoine Quint  <grao...@apple.com>
 
+        [Modern Media Controls] Tracks menu overlaps controls bar in fullscreen
+        https://bugs.webkit.org/show_bug.cgi?id=169670
+        <rdar://problem/31060086>
+
+        Reviewed by Eric Carlson.
+
+        Unflake a test that checks the tracks panel position in fullscreen.
+
+        * media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt:
+        * media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html:
+        * platform/mac/TestExpectations:
+
+2017-03-15  Antoine Quint  <grao...@apple.com>
+
         [Modern Media Controls] Captions do not default to Auto when language is changed
         https://bugs.webkit.org/show_bug.cgi?id=169675
         <rdar://problem/30423369>

Modified: trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt (213993 => 213994)


--- trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt	2017-03-15 18:15:33 UTC (rev 213993)
+++ trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen-expected.txt	2017-03-15 18:21:18 UTC (rev 213994)
@@ -3,8 +3,14 @@
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-PASS shadowRoot.querySelector('.tracks-panel').style.right is "217px"
-PASS shadowRoot.querySelector('.tracks-panel').style.bottom is "101px"
+PASS internals.shadowRoot(media).querySelector("button.fullscreen") became different from null
+PASS internals.shadowRoot(media).querySelector("button.fullscreen").getBoundingClientRect().width became different from 0
+PASS internals.shadowRoot(media).querySelector("button.tracks") became different from null
+PASS internals.shadowRoot(media).querySelector("button.tracks").getBoundingClientRect().width became different from 0
+PASS internals.shadowRoot(media).querySelector("button.tracks").getBoundingClientRect().right became 583
+PASS internals.shadowRoot(media).querySelector('.tracks-panel') became different from null
+PASS internals.shadowRoot(media).querySelector('.tracks-panel').style.right is "217px"
+PASS internals.shadowRoot(media).querySelector('.tracks-panel').style.bottom is "101px"
 
 PASS successfullyParsed is true
 

Modified: trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html (213993 => 213994)


--- trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html	2017-03-15 18:15:33 UTC (rev 213993)
+++ trunk/LayoutTests/media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html	2017-03-15 18:21:18 UTC (rev 213994)
@@ -1,5 +1,6 @@
 <!DOCTYPE html>
 <script src=""
+<script src="" type="text/_javascript_"></script>
 <body>
 <video src="" style="width: 320px; height: 240px;" controls autoplay></video>
 <script type="text/_javascript_">
@@ -9,21 +10,18 @@
 description("Showing the tracks panel in fullscreen.");
 
 const media = document.querySelector("video");
-const shadowRoot = window.internals.shadowRoot(media);
 
-media.addEventListener("webkitbeginfullscreen", () => {
-    debug("webkitbeginfullscreen");
-});
-
 media.addEventListener("webkitfullscreenchange", () => {
-    if (media.webkitDisplayingFullscreen) {
-        window.requestAnimationFrame(() => {
-            clickOnButton("tracks");
-            window.requestAnimationFrame(() => {
-                window.requestAnimationFrame(() => {
-                    shouldBeEqualToString("shadowRoot.querySelector('.tracks-panel').style.right", "217px");
-                    shouldBeEqualToString("shadowRoot.querySelector('.tracks-panel').style.bottom", "101px");
+    if (!media.webkitDisplayingFullscreen)
+        return;
 
+    shouldBecomeDifferent(`internals.shadowRoot(media).querySelector("button.tracks")`, "null", () => {
+        shouldBecomeDifferent(`internals.shadowRoot(media).querySelector("button.tracks").getBoundingClientRect().width`, "0", () => {
+            shouldBecomeEqual(`internals.shadowRoot(media).querySelector("button.tracks").getBoundingClientRect().right`, "583", () => {
+                pressOnElement(internals.shadowRoot(media).querySelector("button.tracks"));
+                shouldBecomeDifferent(`internals.shadowRoot(media).querySelector('.tracks-panel')`, "null", () => {
+                    shouldBeEqualToString("internals.shadowRoot(media).querySelector('.tracks-panel').style.right", "217px");
+                    shouldBeEqualToString("internals.shadowRoot(media).querySelector('.tracks-panel').style.bottom", "101px");
                     debug("");
                     media.remove();
                     finishJSTest();
@@ -30,22 +28,18 @@
                 });
             });
         });
-    }
+    });
 });
 
 media.addEventListener("play", () => {
     media.pause();
-    window.requestAnimationFrame(() => clickOnButton("fullscreen"));
+    shouldBecomeDifferent(`internals.shadowRoot(media).querySelector("button.fullscreen")`, "null", () => {
+        shouldBecomeDifferent(`internals.shadowRoot(media).querySelector("button.fullscreen").getBoundingClientRect().width`, "0", () => {
+            pressOnElement(internals.shadowRoot(media).querySelector(`button.fullscreen`));
+        });
+    });
 });
 
-function clickOnButton(name)
-{
-    const bounds = shadowRoot.querySelector(`button.${name}`).getBoundingClientRect();
-    eventSender.mouseMoveTo(bounds.left + 1, bounds.top + 1);
-    eventSender.mouseDown();
-    eventSender.mouseUp();
-}
-
 </script>
 <script src=""
 </body>

Modified: trunk/LayoutTests/platform/mac/TestExpectations (213993 => 213994)


--- trunk/LayoutTests/platform/mac/TestExpectations	2017-03-15 18:15:33 UTC (rev 213993)
+++ trunk/LayoutTests/platform/mac/TestExpectations	2017-03-15 18:21:18 UTC (rev 213994)
@@ -1488,7 +1488,6 @@
 webkit.org/b/165386 media/modern-media-controls/seek-backward-support/seek-backward-support.html [ Pass Timeout ]
 
 webkit.org/b/169158 media/modern-media-controls/tracks-support/tracks-support-show-panel-after-dragging-controls.html [ Pass Failure ]
-webkit.org/b/167373 media/modern-media-controls/tracks-support/tracks-support-show-panel-fullscreen.html [ Pass Failure ]
 
 webkit.org/b/169568 media/modern-media-controls/volume-down-support/volume-down-support.html [ Pass Failure ]
 

Modified: trunk/Source/WebCore/ChangeLog (213993 => 213994)


--- trunk/Source/WebCore/ChangeLog	2017-03-15 18:15:33 UTC (rev 213993)
+++ trunk/Source/WebCore/ChangeLog	2017-03-15 18:21:18 UTC (rev 213994)
@@ -1,3 +1,21 @@
+2017-03-15  Antoine Quint  <grao...@apple.com>
+
+        [Modern Media Controls] Tracks menu overlaps controls bar in fullscreen
+        https://bugs.webkit.org/show_bug.cgi?id=169670
+        <rdar://problem/31060086>
+        
+        Reviewed by Eric Carlson.
+
+        It used to be that the top of the tracks button was the same as the top of the controls
+        bar, but that changed when we fixed https://bugs.webkit.org/show_bug.cgi?id=169412. We
+        now use the top of the controls bar to computed the y-position for the tracks panel.
+
+        We are not adding a new test, instead we're unflaking a test that started failing
+        reliably once we fixed https://bugs.webkit.org/show_bug.cgi?id=169412.
+
+        * Modules/modern-media-controls/controls/macos-media-controls.js:
+        (MacOSMediaControls.prototype.showTracksPanel):
+
 2017-03-14  Jon Lee  <jon...@apple.com>
 
         Clean up RTCPeerConnection IDL

Modified: trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-media-controls.js (213993 => 213994)


--- trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-media-controls.js	2017-03-15 18:15:33 UTC (rev 213993)
+++ trunk/Source/WebCore/Modules/modern-media-controls/controls/macos-media-controls.js	2017-03-15 18:21:18 UTC (rev 213994)
@@ -51,9 +51,10 @@
         this.tracksPanel.presentInParent(this);
 
         const controlsBounds = this.element.getBoundingClientRect();
+        const controlsBarBounds = this.controlsBar.element.getBoundingClientRect();
         const tracksButtonBounds = this.tracksButton.element.getBoundingClientRect();
         this.tracksPanel.rightX = this.width - (tracksButtonBounds.right - controlsBounds.left);
-        this.tracksPanel.bottomY = this.height - (tracksButtonBounds.top - controlsBounds.top) + 1;
+        this.tracksPanel.bottomY = this.height - (controlsBarBounds.top - controlsBounds.top) + 1;
         this.tracksPanel.maxHeight = this.height - this.tracksPanel.bottomY - 10;
     }
 
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to