tor-browser

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

lfedcm-helpers.js (1256B)


      1 async function clearLightweightCredential(origin, id) {
      2  let deletePromise = new Promise((resolve) => {
      3    let handler = (event) => {
      4      if (event.origin == origin && event.data == "deleted") {
      5        resolve();
      6        window.removeEventListener("message", handler);
      7      }
      8    };
      9    window.addEventListener(
     10      "message",
     11      handler,
     12    );
     13  });
     14  let win = window.open(`${origin}/fedcm/support/lfedcm-identity.provider-delete.sub.html?id=${id}`, "_blank");
     15  await deletePromise;
     16  win.close();
     17  await navigator.credentials.preventSilentAccess();
     18 }
     19 
     20 async function createLightweightCredential(origin, options) {
     21  let createPromise = new Promise((resolve) => {
     22    let handler = (event) => {
     23      if (event.origin == origin && event.data == "created") {
     24        resolve();
     25        window.removeEventListener("message", handler);
     26      }
     27    };
     28    window.addEventListener(
     29      "message",
     30      handler,
     31    );
     32  });
     33  options.postMessage = true;
     34 
     35  let url = URL.parse(origin);
     36  url.pathname = "/fedcm/support/lfedcm-identity.provider-create.sub.html";
     37  for (const [name, value] of Object.entries(options)) {
     38    url.searchParams.set(name, value);
     39  }
     40  let win = window.open(url, "_blank");
     41  await createPromise;
     42  win.close();
     43 }