tor-browser

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

events_referenceSpace_reset_immersive.https.html (1729B)


      1 <!DOCTYPE html>
      2 <script src=/resources/testharness.js></script>
      3 <script src=/resources/testharnessreport.js></script>
      4 <script src="resources/webxr_util.js"></script>
      5 <script src="resources/webxr_test_constants.js"></script>
      6 
      7 <script>
      8 let immersiveTestName = "XRSession resetpose from a device properly fires off " +
      9  "the right events for immersive sessions";
     10 
     11 let watcherDone = new Event("watcherdone");
     12 
     13 let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
     14 
     15 let testFunction = function(session, fakeDeviceController, t) {
     16  let resetPromise = session.requestReferenceSpace('local')
     17  .then((refSpace) => {
     18    let eventWatcher = new EventWatcher(
     19        t, refSpace, ["reset", "watcherdone"]);
     20    refSpace.addEventListener("reset", (event) => {
     21      t.step(() => {
     22        assert_equals(event.referenceSpace, refSpace);
     23 
     24        // Also make sure the same objects are returned each time these
     25        // attributes are accessed.
     26        let eventRefSpace = event.referenceSpace;
     27        let transform = event.transform;
     28        assert_equals(eventRefSpace, event.referenceSpace,
     29          "XRReferenceSpaceEvent.referenceSpace returns the same object.");
     30        assert_equals(transform, event.transform,
     31          "XRReferenceSpaceEvent.transform returns the same object.");
     32      });
     33 
     34      refSpace.dispatchEvent(watcherDone);
     35    }, false);
     36    return eventWatcher.wait_for(["reset", "watcherdone"]);
     37  });
     38 
     39  fakeDeviceController.simulateResetPose();
     40 
     41  // The triggered resetPose event should arrive after the next Animation Frame
     42  requestSkipAnimationFrame(session, () => {});
     43 
     44  return resetPromise;
     45 };
     46 
     47 xr_session_promise_test(
     48  immersiveTestName, testFunction, fakeDeviceInitParams, 'immersive-vr');
     49 
     50 </script>