document-exit-fullscreen-twice.html (1725B)
1 <!DOCTYPE html> 2 <title>Document#exitFullscreen() called twice</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 id="log"></div> 9 <script> 10 promise_test(async (t) => { 11 const once = { once: true }; 12 const div = document.querySelector("div"); 13 document.onfullscreenerror = t.unreached_func("fullscreenerror event"); 14 15 await Promise.all([ 16 fullScreenChange(), 17 trusted_request(div), 18 ]); 19 20 // We are now in fullscreen. 21 assert_equals(document.fullscreenElement, div); 22 23 // Exit fullscreen twice. 24 const firstPromise = document.exitFullscreen(); 25 assert_equals( 26 document.fullscreenElement, 27 div, 28 "fullscreenElement after first exitFullscreen()" 29 ); 30 31 const secondPromise = document.exitFullscreen(); 32 assert_equals( 33 document.fullscreenElement, 34 div, 35 "fullscreenElement after second exitFullscreen()" 36 ); 37 const eventChange = new Promise((resolve) => { 38 document.addEventListener("fullscreenchange", () => { 39 document.addEventListener("fullscreenchange", t.unreached_func("second event fired"), once); 40 resolve(); 41 }, once); 42 }); 43 44 await Promise.all([ 45 fullScreenChange, 46 firstPromise, 47 secondPromise, 48 eventChange, 49 ]); 50 assert_equals(document.fullscreenElement, null); 51 }); 52 </script>