document-exit-fullscreen-nested.html (1732B)
1 <!DOCTYPE html> 2 <title>Document#exitFullscreen() for nested fullscreen</title> 3 <script src="/resources/testharness.js"></script> 4 <script src="/resources/testharnessreport.js"></script> 5 <script src="/resources/testdriver.js"></script> 6 <script src="/resources/testdriver-vendor.js"></script> 7 <script src="../trusted-click.js"></script> 8 <div><div></div></div> 9 <script> 10 promise_test(async (t) => { 11 const outer = document.querySelector("div"); 12 const inner = outer.firstChild; 13 14 document.onfullscreenerror = t.unreached_func("fullscreenerror event"); 15 16 // First request fullscreen for the outer element. 17 await Promise.all([ 18 fullScreenChange(), 19 trusted_request(outer), 20 ]); 21 22 assert_equals(document.fullscreenElement, outer); 23 24 // Then request fullscreen for the inner element. 25 const p = trusted_request(inner); 26 27 // Even though we are already in fullscreen, the change in 28 // document.fullscreenElement should not happen synchronously. 29 assert_equals(document.fullscreenElement, outer); 30 await Promise.all([ 31 fullScreenChange(), 32 p, 33 ]); 34 assert_equals(document.fullscreenElement, inner); 35 36 // Now exit fullscreen. 37 const exitP = document.exitFullscreen(); 38 // Even though we don't need to exit fullscreen, the change in 39 // document.fullscreenElement should not happen synchronously. 40 assert_equals(document.fullscreenElement, inner); 41 await Promise.all([ 42 exitP, 43 fullScreenChange(), 44 ]); 45 assert_equals(document.fullscreenElement, outer); 46 }, "Exit fullscreen for nested fullscreen"); 47 </script>