summaryrefslogtreecommitdiffstats
path: root/dom/media/autoplay/test/mochitest/file_autoplay_policy_unmute_pauses.html
blob: 125ee156b6fee2e0f46a5b7edf07e2a1f079ec04 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<!DOCTYPE HTML>
<html>

<head>
  <title>Autoplay policy window</title>
  <style>
    video {
      width: 50%;
      height: 50%;
    }
  </style>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <script src="/tests/SimpleTest/EventUtils.js"></script>
  <script type="text/javascript" src="manifest.js"></script>
  <script type="text/javascript" src="AutoplayTestUtils.js"></script>
</head>

<body>
  <pre id="test">
      <script>

        window.is = window.opener.is;
        window.info = window.opener.info;

        function testAutoplayUnmutePauses(testCase, parent_window) {
          return new Promise(function (resolve, reject) {

            info("testAutoplayUnmutePauses: " + testCase.property);

            let element = document.createElement("video");
            element.preload = "auto";

            // Make inaudible.
            element[testCase.property] = testCase.inaudible;

            // Once we've loaded, play, then make audible.
            // Assert that the media is paused when we make it audible.
            element.addEventListener("loadeddata", () => {
              info("loadeddata");
              element.play();
              is(element.paused, false, testCase.property + "=" + testCase.inaudible + " - should be playing");
              element[testCase.property] = testCase.audible;
              is(element.paused, true, testCase.property + "=" + testCase.audible + " - should be paused.");
              resolve();
            });

            element.src = "short.mp4";
            element.id = "video";
            document.body.appendChild(element);
          });
        }

        nextWindowMessage().then(
          (event) => {
            testAutoplayUnmutePauses(event.data, event.source)
              .then(() => {
                event.source.postMessage("done", "*");
              });
          });

      </script>
    </pre>
</body>

</html>