| <!DOCTYPE html> |
| <script src="../../../../resources/js-test-pre.js"></script> |
| <script src="../../resources/media-controls-utils.js" type="text/javascript"></script> |
| <body> |
| <video src="../../../content/test.mp4" style="width: 320px; height: 240px;" controls autoplay plays-inline></video> |
| <script type="text/javascript"> |
| |
| window.jsTestIsAsync = true; |
| |
| description("Testing we stop updating controls while in fullscreen and then update them again when back to inline on iOS."); |
| |
| const media = document.querySelector("video"); |
| const button = document.body.appendChild(document.createElement("button")); |
| button.textContent = "Enter Fullscreen"; |
| button.style = "position: absolute; left: 0; top: 0"; |
| |
| media.addEventListener("webkitpresentationmodechanged", () => { |
| if (media.webkitDisplayingFullscreen) { |
| debug(""); |
| debug("Entered fullscreen"); |
| |
| shouldBeFalse("media.paused"); |
| shouldBecomeEqual("window.internals.shadowRoot(media).querySelector('.media-controls').childElementCount", "0", () => { |
| media.pause(); |
| media.webkitExitFullscreen(); |
| }); |
| } else { |
| debug(""); |
| debug("Exited fullscreen"); |
| endTest(); |
| } |
| }); |
| |
| media.addEventListener("play", () => { |
| debug(""); |
| debug("Obtained a 'play' event."); |
| |
| startTest(); |
| }); |
| |
| function enterFullscreen() { |
| debug(""); |
| debug("Entering fullscreen."); |
| button.addEventListener("click", () => { |
| try { |
| media.webkitEnterFullscreen(); |
| } catch(e) { |
| debug("Toggling fullscreen failed."); |
| finishJSTest(); |
| } |
| }); |
| |
| pressOnElement(button); |
| } |
| |
| function startTest() |
| { |
| enterFullscreen(); |
| } |
| |
| function endTest() |
| { |
| debug(""); |
| button.remove(); |
| media.remove(); |
| finishJSTest(); |
| } |
| |
| </script> |
| <script src="../../../../resources/js-test-post.js"></script> |
| </body> |