async function clearLightweightCredential(origin, id) {
let deletePromise = new Promise((resolve) => {
let handler = (event) => {
if (event.origin == origin && event.data == "deleted") {
resolve();
window.removeEventListener("message", handler);
}
};
window.addEventListener(
"message",
handler,
);
});
let win = window.open(`${origin}/fedcm/support/lfedcm-identity.provider-delete.sub.html?id=${id}`, "_blank");
await deletePromise;
win.close();
await navigator.credentials.preventSilentAccess();
}
async function createLightweightCredential(origin, options) {
let createPromise = new Promise((resolve) => {
let handler = (event) => {
if (event.origin == origin && event.data == "created") {
resolve();
window.removeEventListener("message", handler);
}
};
window.addEventListener(
"message",
handler,
);
});
options.postMessage = true;
let url = URL.parse(origin);
url.pathname = "/fedcm/support/lfedcm-identity.provider-create.sub.html";
for (const [name, value] of Object.entries(options)) {
url.searchParams.set(name, value);
}
let win = window.open(url, "_blank");
await createPromise;
win.close();
}