exceed-then-not-exceed.html (1230B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <script src="/resources/testharness.js"></script> 5 <script src="/resources/testharnessreport.js"></script> 6 <script> 7 promise_test(async () => { 8 await new Promise(resolve => document.addEventListener('DOMContentLoaded', resolve, {once:true})); 9 await new Promise(resolve => requestAnimationFrame(resolve)); 10 await new Promise(resolve => requestAnimationFrame(resolve)); 11 // #fs1, #container, and #child were laid out. 12 13 // Move #child. 14 // It makes #container dirty, and it exceeds from #fs1's 1x1 grid. 15 document.querySelector('#fs1').insertBefore( 16 document.querySelector('#child'), document.querySelector('#container')); 17 await new Promise(resolve => requestAnimationFrame(resolve)); 18 await new Promise(resolve => requestAnimationFrame(resolve)); 19 20 // Removing #child makes #container visible again. 21 document.querySelector('#child').remove(); 22 await new Promise(resolve => requestAnimationFrame(resolve)); 23 await new Promise(resolve => requestAnimationFrame(resolve)); 24 }, 'No crash when a dirty FRAMESET exceeds from the grid then fits in it again'); 25 </script> 26 </head> 27 <frameset id="fs1"> 28 <frameset id="container"> 29 <frameset id="child"></frameset> 30 </frameset> 31 </frameset> 32 </html>