tor-browser

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

xrSession_features_deviceSupport.https.html (1902B)


      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 <canvas></canvas>
      8 <script>
      9 
     10  let testName =
     11    "Immersive XRSession requests with no supported device should reject";
     12 
     13  let fakeDeviceInitParams = {
     14    supportsImmersive: true,
     15    supportedModes: ["inline", "immersive-vr"],
     16    views: VALID_VIEWS,
     17    viewerOrigin: IDENTITY_TRANSFORM,
     18    supportedFeatures: [
     19    "viewer",
     20    "local",
     21    "local-floor"]
     22  };
     23 
     24 
     25  xr_promise_test(testName,
     26    (t) => {
     27    function session_resolves(sessionMode, sessionInit) {
     28      return navigator.xr.requestSession(sessionMode, sessionInit)
     29        .then((session) => {
     30          return session.end();
     31        });
     32    }
     33 
     34    return navigator.xr.test.simulateDeviceConnection(fakeDeviceInitParams)
     35      .then((controller) =>
     36        promise_simulate_user_activation(() => {
     37          // Attempting to request required features that aren't supported by
     38          // the device should reject.
     39 
     40          return promise_rejects_dom(t, "NotSupportedError",
     41            navigator.xr.requestSession("immersive-vr", {
     42              requiredFeatures: ['bounded-floor']
     43            }))
     44        }).then(() => promise_simulate_user_activation(() => {
     45            // Attempting to request with an unsupported feature as optional
     46            // should succeed
     47            return session_resolves("immersive-vr", {
     48              optionalFeatures: ['bounded-floor']
     49            });
     50        })).then(() => promise_simulate_user_activation(() => {
     51          // Attempting to request with supported features only should succeed.
     52          return session_resolves("immersive-vr", {
     53            requiredFeatures: ['local', 'local-floor']
     54          })
     55        }))
     56      );
     57  });
     58 
     59 </script>
     60 </body>