| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Entering fullscreen while popping a stack of multiple elements</title> |
| <script src="full-screen-test.js"></script> |
| <script> |
| |
| window.addEventListener('load', async event => { |
| if (Element.prototype.requestFullscreen == undefined) { |
| logResult(false, "Element.prototype.requestFullscreen == undefined"); |
| endTest(); |
| return; |
| } |
| |
| if (!window.testRunner) { |
| logResult(false, "This test requires WebKitTestRunner."); |
| endTest(); |
| return; |
| } |
| |
| consoleWrite('Enter fullscreen with target1'); |
| internals.withUserGesture(() => { run('target1.requestFullscreen()'); }); |
| await waitFor(target1, 'fullscreenchange'); |
| await testRunner.updatePresentation(); |
| |
| consoleWrite('Enter fullscreen with target2'); |
| internals.withUserGesture(() => { run('target2.requestFullscreen()'); }); |
| await waitFor(target2, 'fullscreenchange'); |
| await testRunner.updatePresentation(); |
| |
| consoleWrite('Exit fullscreen with target1'); |
| run('document.exitFullscreen()'); |
| |
| consoleWrite('Attempt to enter fullscreen with target3'); |
| internals.withUserGesture(() => { run('target3.requestFullscreen()'); }); |
| |
| await Promise.all([waitFor(target3, 'fullscreenerror'), waitFor(target2, 'fullscreenchange')]); |
| await testRunner.updatePresentation(); |
| |
| consoleWrite('Entering fullscreen with target3'); |
| internals.withUserGesture(() => { run('target3.requestFullscreen()'); }); |
| await waitFor(target3, 'fullscreenchange'); |
| |
| endTest(); |
| }); |
| </script> |
| </head> |
| <body> |
| <span id="target1"></span> |
| <span id="target2"></span> |
| <span id="target3"></span> |
| </body> |
| </html> |