transition-in-iframe-001.html (1540B)
1 <!DOCTYPE html> 2 3 <html> 4 5 <title>Transitions: Transition in <iframe> on page with empty rAF finishes</title> 6 <link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> 7 <link rel="author" href="mailto:mrobinson@igalia.com"> 8 <link rel="author" href="mailto:obrufau@igalia.com"> 9 <script src="/resources/testharness.js"></script> 10 <script src="/resources/testharnessreport.js"></script> 11 <script src="/common/rendering-utils.js"></script> 12 13 <style> 14 #iframe { 15 width: 100px; 16 height: 100px; 17 border: none; 18 } 19 </style> 20 21 <script> 22 let rAFId = null; 23 function triggerNeverEndingUselessRAF() { 24 rAFId = requestAnimationFrame(triggerNeverEndingUselessRAF); 25 } 26 27 promise_test(async t => { 28 await waitForAtLeastOneFrame(); 29 await waitForAtLeastOneFrame(); 30 31 let iframe = document.createElement("iframe"); 32 iframe.id = "iframe"; 33 iframe.src = "support/transition-in-iframe-001-iframe.html" 34 iframe.sandbox = "allow-scripts"; 35 36 iframe.addEventListener("load", async () => { 37 await waitForAtLeastOneFrame(); 38 await waitForAtLeastOneFrame(); 39 iframe.contentWindow.postMessage("loaded", "*"); 40 }); 41 42 triggerNeverEndingUselessRAF(); 43 document.body.appendChild(iframe); 44 45 await new Promise(resolve => { 46 window.addEventListener("message", () => { 47 cancelAnimationFrame(rAFId); 48 resolve(); 49 }); 50 }); 51 }); 52 </script> 53 54 </html>