tor-browser

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

getclientcapabilities.https.html (1848B)


      1 <!DOCTYPE html>
      2 <meta charset="utf-8">
      3 <title>getClientCapabilities tests</title>
      4 <script src="/resources/testharness.js"></script>
      5 <script src="/resources/testharnessreport.js"></script>
      6 <script src="/resources/testdriver.js"></script>
      7 <script src="/resources/testdriver-vendor.js"></script>
      8 <script src=helpers.js></script>
      9 <body></body>
     10 <script>
     11 "use strict";
     12 
     13 const KNOWN_CAPABILITIES_SET = new Set([
     14  "conditionalCreate",
     15  "conditionalGet",
     16  "hybridTransport",
     17  "passkeyPlatformAuthenticator",
     18  "relatedOrigins",
     19  "signalAllAcceptedCredentials",
     20  "signalCurrentUserDetails",
     21  "signalUnknownCredential",
     22  "userVerifyingPlatformAuthenticator",
     23 
     24  // Extensions implemented by the client
     25  "extension:appid",
     26  "extension:appidExclude",
     27  "extension:hmacCreateSecret",
     28  "extension:credentialProtectionPolicy",
     29  "extension:enforceCredentialProtectionPolicy",
     30  "extension:minPinLength",
     31  "extension:credProps",
     32  "extension:largeBlob",
     33  "extension:credBlob",
     34  "extension:getCredBlob",
     35  "extension:payment",
     36  "extension:prf",
     37 ]);
     38 
     39 promise_test(async t => {
     40  const capabilities = await PublicKeyCredential.getClientCapabilities();
     41 
     42  const keys = Object.keys(capabilities);
     43  const sortedKeys = [...keys].sort();
     44  assert_array_equals(keys, sortedKeys, "Keys should be sorted lexicographically");
     45 
     46  for (const key of keys) {
     47    assert_equals(
     48      typeof capabilities[key],
     49      "boolean",
     50      `Value for "${key}" should be boolean`
     51    );
     52  }
     53 }, "Capabilities object has sorted keys and boolean values");
     54 
     55 promise_test(async t => {
     56  const capabilities = await PublicKeyCredential.getClientCapabilities();
     57 
     58  for (const key of Object.keys(capabilities)) {
     59    assert_true(
     60      KNOWN_CAPABILITIES_SET.has(key),
     61      `Capability "${key}" should be a known capability`
     62    );
     63  }
     64 }, "Capabilities keys are known");
     65 </script>