| <script src="../../../resources/js-test-pre.js"></script> |
| <script src="../resources/media-controls-loader.js" type="text/javascript"></script> |
| <body> |
| <video src="../../content/test.mp4" style="width: 320px; height: 240px;" controls></video> |
| <div id="shadow"></div> |
| <script type="text/javascript"> |
| |
| window.jsTestIsAsync = true; |
| |
| description("Testing the <code>ControlsVisibilitySupport</code> behavior when the controls attribute changes."); |
| |
| const shadowRoot = document.querySelector("div#shadow").attachShadow({ mode: "open" }); |
| const media = document.querySelector("video"); |
| const mediaController = createControls(shadowRoot, media, null); |
| |
| let numberOfMutations = 0; |
| new MutationObserver(() => { |
| numberOfMutations++; |
| |
| if (numberOfMutations === 1) { |
| shouldBeFalse("mediaController.controls.visible"); |
| |
| debug(""); |
| debug("Turning controls back on"); |
| media.controls = true; |
| } else { |
| shouldBeTrue("mediaController.controls.visible"); |
| |
| debug(""); |
| shadowRoot.host.remove(); |
| media.remove(); |
| finishJSTest(); |
| } |
| }).observe(media, { attributes: true, attributeFilter: ["controls"] }); |
| |
| media.addEventListener("loadedmetadata", function() { |
| debug(""); |
| debug("Media has loaded metadata"); |
| shouldBecomeEqual("media.videoTracks.length", "1", () => { |
| shouldBeTrue("mediaController.controls.visible"); |
| |
| debug(""); |
| debug("Turning controls off"); |
| media.controls = false; |
| }); |
| }); |
| |
| </script> |
| <script src="../../../resources/js-test-post.js"></script> |
| </body> |