tor-browser

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

xrInputSource_add_remove.https.html (2086B)


      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 
      9 let testName = "XRInputSources can be properly added and removed from the "
     10  + "session";
     11 
     12 let fakeDeviceInitParams = TRACKED_IMMERSIVE_DEVICE;
     13 
     14 let testFunction = (session, fakeDeviceController, t) => new Promise((resolve) => {
     15    let input_sources = session.inputSources;
     16 
     17    t.step( () => {
     18      assert_equals(input_sources.length, 0);
     19    });
     20 
     21    let input_source_1 = fakeDeviceController.simulateInputSourceConnection(RIGHT_CONTROLLER);
     22 
     23    requestSkipAnimationFrame(session, (time, xrFrame) => {
     24      let input_sources = session.inputSources;
     25 
     26      t.step( () => {
     27        assert_equals(input_sources.length, 1);
     28        assert_equals(input_sources[0].targetRayMode, "tracked-pointer");
     29        assert_equals(input_sources[0].handedness, "right");
     30      });
     31 
     32      let input_source_2 = fakeDeviceController.simulateInputSourceConnection({
     33        handedness: "none",
     34        targetRayMode: "gaze",
     35        pointerOrigin: VALID_POINTER_TRANSFORM,
     36        profiles: []
     37      });
     38 
     39      session.requestAnimationFrame((time, xrFrame) => {
     40        let input_sources = session.inputSources;
     41 
     42        t.step( () => {
     43          assert_equals(input_sources.length, 2);
     44          assert_equals(input_sources[1].targetRayMode, "gaze");
     45          assert_equals(input_sources[1].handedness, "none");
     46        });
     47 
     48        input_source_1.disconnect();
     49 
     50        session.requestAnimationFrame((time, xrFrame) => {
     51          let input_sources = session.inputSources;
     52 
     53          t.step( () => {
     54            assert_equals(input_sources.length, 1);
     55            assert_equals(input_sources[0].targetRayMode, "gaze");
     56            assert_equals(input_sources[0].handedness, "none");
     57          });
     58 
     59          resolve();
     60        });
     61      });
     62    });
     63  });
     64 
     65 xr_session_promise_test(
     66  testName, testFunction, fakeDeviceInitParams, 'immersive-vr');
     67 
     68 </script>