no-raf-while-render-blocked.html (1293B)
1 <!DOCTYPE html> 2 <meta name="timeout" content="long"> 3 <html> 4 <title>View transitions: rAF is not issued while render-blocked</title> 5 <link rel="help" href="https://drafts.csswg.org/css-view-transitions-1/"> 6 <link rel="author" href="mailto:khushalsagar@chromium.org"> 7 8 <script src="/dom/events/scrolling/scroll_support.js"></script> 9 <script src="/resources/testharness.js"></script> 10 <script src="/resources/testharnessreport.js"></script> 11 12 <style> 13 div { 14 width: 100px; 15 height: 100px; 16 background: blue; 17 contain: paint; 18 view-transition-name: target; 19 } 20 </style> 21 22 <div id=target></div> 23 24 <script> 25 let renderBlocked = true; 26 27 promise_test(async () => { 28 assert_implements(document.startViewTransition, "Missing document.startViewTransition"); 29 await waitForCompositorReady(); 30 return new Promise(async (resolve, reject) => { 31 requestAnimationFrame(() => { 32 document.startViewTransition(() => { 33 return new Promise(async (inner_resolve) => { 34 step_timeout(() => { 35 renderBlocked = false; 36 inner_resolve(); 37 }, 1000); 38 }); 39 }); 40 41 requestAnimationFrame(() => { 42 if (renderBlocked) 43 reject(); 44 else 45 resolve(); 46 }); 47 }); 48 }); 49 }, "rAF is blocked until prepare callback"); 50 </script>