| <!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> |