tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

xrDevice_disconnect_ends.https.html (1367B)


      1 <!DOCTYPE html>
      2 <body>
      3  <script src=/resources/testharness.js></script>
      4  <script src=/resources/testharnessreport.js></script>
      5  <script src="resources/webxr_util.js"></script>
      6  <script src="resources/webxr_test_constants.js"></script>
      7 
      8  <script>
      9    const testName = "Immersive session ends when device is disconnected";
     10    let watcherDone = new Event("watcherdone");
     11    const fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
     12 
     13    let testFunction = function(session, testDeviceController, t) {
     14      let sessionWatcher = new EventWatcher(t, session, ["end", "watcherdone"]);
     15      let sessionPromise = sessionWatcher.wait_for(["end", "watcherdone"]);
     16 
     17      let xrWatcher = new EventWatcher(t, navigator.xr, ["devicechange"]);
     18      let xrPromise = xrWatcher.wait_for(["devicechange"]);
     19 
     20      function onSessionEnd(event) {
     21        t.step( () => {
     22          assert_equals(event.session, session);
     23          session.dispatchEvent(watcherDone);
     24        });
     25      }
     26 
     27      session.addEventListener("end", onSessionEnd, false);
     28 
     29      // The javascript needs to yield so that the event registration processes.
     30      t.step_timeout(() => { testDeviceController.disconnect(); }, 0);
     31 
     32      return Promise.all([sessionPromise, xrPromise]);
     33    };
     34 
     35    xr_session_promise_test(testName, testFunction,
     36      fakeDeviceInitParams, 'immersive-vr');
     37  </script>
     38 </body>