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