tor-browser

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

getViewerPose_emulatedPosition.https.html (1824B)


      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 
     10    let testName = "XRFrame getViewerPose has emulatedPosition set properly.";
     11 
     12    const poseTransform = {
     13        position: [1, 1, 1],
     14        orientation: [0.5, 0.5, 0.5, 0.5]
     15    };
     16 
     17    let testFunction = function(session, fakeDeviceController, t) {
     18      let debug = xr_debug.bind(this, 'testFunction');
     19      return session.requestReferenceSpace('local')
     20        .then((referenceSpace) => new Promise((resolve, reject) => {
     21          debug('refSpace promise');
     22          function CheckPositionNotEmulated(time, vrFrame){
     23            debug('rAF 1: checkPositionNotEmulated');
     24            t.step(() => {
     25              let pose = vrFrame.getViewerPose(referenceSpace);
     26              assert_not_equals(pose, null);
     27              assert_equals(pose.emulatedPosition, false);
     28              fakeDeviceController.setViewerOrigin(poseTransform, true);
     29            });
     30 
     31            session.requestAnimationFrame(CheckPositionEmulated);
     32          }
     33 
     34          function CheckPositionEmulated(time, vrFrame) {
     35            debug('rAF 2: checkPositionEmulated');
     36            t.step(() => {
     37              let pose = vrFrame.getViewerPose(referenceSpace);
     38              assert_not_equals(pose, null);
     39              assert_equals(pose.emulatedPosition, true);
     40            });
     41 
     42            // Finished.
     43            debug('resolve');
     44            resolve();
     45          }
     46 
     47          requestSkipAnimationFrame(session, CheckPositionNotEmulated);
     48        }));
     49    };
     50 
     51    xr_session_promise_test(testName, testFunction,
     52      TRACKED_IMMERSIVE_DEVICE, 'immersive-vr');
     53 
     54  </script>
     55 </body>