summaryrefslogtreecommitdiffstats
path: root/dom/vr/test/mochitest/test_vrDisplay_onvrdisplaydeactivate_crosscontent.html
blob: 6c58e5efd13896607e57c69f3d39baa44f74f793 (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
<html>
  <head>
    <title>VRDisplay onvrdisplaydeactivate Crosscontent test</title>
    <meta name="timeout" content="long"/>
    <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src="VRSimulationDriver.js"></script>
    <script src="WebVRHelpers.js"></script>
    <script src="requestPresent.js"></script>
    <script src="runVRTest.js"></script>
  </head>
  <body>
    <canvas id="vrCanvas"></canvas>
    <script>

      function startTest() {
        var canvas = document.getElementById("vrCanvas");
        var iframe1 = document.getElementById("iframe1").contentWindow;
        var t = async_test("vrdisplaydeactivate crosscontent test");

        window.addEventListener("vrdisplaydeactivate", () => {
          t.step(() => {
            assert_true(vrDisplay.isPresenting,
                        "VRDisplay should be still presenting now without being affected by the event.");
            t.done();
          });
        });

        iframe1.addEventListener("vrdisplaydeactivate", () => {
          t.unreached_func("vrdisplaydeactivate should not be received by other iframe.");
        });

        promise_test((test) => {
          return attachVRDisplay(test).then(() => {
            return promise_test((test) => {
              return setupVRDisplay(test).then(() => {
                VRSimulationDriver.SetMountState(true);
                VRSimulationDriver.UpdateVRDisplay();
                return WebVRHelpers.RequestPresentOnVRDisplay(vrDisplay, [{source: canvas}]);
              }).then(() => {
                VRSimulationDriver.SetMountState(false);
                VRSimulationDriver.UpdateVRDisplay();
              });
            });
          });
        });
      }

      runVRTest(startTest);
    </script>
    <iframe id="iframe1"></iframe>
  </body>
</html>