mirror of
https://github.com/nodejs/node.git
synced 2025-08-15 13:48:44 +02:00

PR-URL: https://github.com/nodejs/node/pull/58666 Fixes: https://github.com/nodejs/node/pull/36502 Refs: https://w3c.github.io/web-locks Reviewed-By: Matteo Collina <matteo.collina@gmail.com> Reviewed-By: Ethan Arrowood <ethan@arrowood.dev> Reviewed-By: Filip Skokan <panva.ip@gmail.com> Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com> Reviewed-By: Anna Henningsen <anna@addaleax.net>
21 lines
706 B
HTML
21 lines
706 B
HTML
<!DOCTYPE html>
|
|
<html class="test-wait">
|
|
<meta charset="utf-8">
|
|
<iframe id="id_0"></iframe>
|
|
<script>
|
|
/** @param {HTMLIFrameElement} iframe */
|
|
function waitForLoad(iframe) {
|
|
// iframe is initialized immediately on Chrome while it needs some time on Firefox
|
|
if (iframe.contentDocument.readyState === "complete") {
|
|
return;
|
|
}
|
|
return new Promise(r => iframe.onload = r);
|
|
}
|
|
|
|
const iframe = document.getElementById("id_0");
|
|
iframe.contentWindow.navigator.locks.request("weblock_0", async () => {
|
|
await waitForLoad(iframe);
|
|
document.body.append(iframe); // discards the document and destroys locks
|
|
document.documentElement.classList.remove("test-wait");
|
|
});
|
|
</script>
|