74 lines
2.2 KiB
HTML
74 lines
2.2 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>full-screen-enter-while-exiting</title>
|
|
<script src="full-screen-test.js"></script>
|
|
<script>
|
|
|
|
window.addEventListener('load', async event => {
|
|
if (Element.prototype.webkitRequestFullScreen == undefined) {
|
|
logResult(false, "Element.prototype.webkitRequestFullScreen == undefined");
|
|
endTest();
|
|
return;
|
|
}
|
|
|
|
if (!window.testRunner) {
|
|
logResult(false, "This test requires Internals.");
|
|
endTest();
|
|
return;
|
|
}
|
|
|
|
if (!testRunner.setEnterFullscreenForElementCallback) {
|
|
logResult(false, "This test requires WebKitTestRunner.")
|
|
endTest();
|
|
return;
|
|
}
|
|
|
|
testRunner.setHasCustomFullScreenBehavior(true);
|
|
|
|
let enterFullScreenPromise = new Promise(resolve => {
|
|
testRunner.setEnterFullscreenForElementCallback(resolve);
|
|
});
|
|
|
|
consoleWrite('Enter fullscreen with target1');
|
|
internals.withUserGesture(() => { run('target1.webkitRequestFullScreen()'); });
|
|
|
|
await enterFullScreenPromise;
|
|
|
|
var changePromise = waitFor(target1, 'webkitfullscreenchange');
|
|
run('internals.webkitWillEnterFullScreenForElement(target1)');
|
|
|
|
await changePromise;
|
|
|
|
run('internals.webkitDidEnterFullScreenForElement(target1)');
|
|
|
|
let exitFullScreenPromise = new Promise(resolve => {
|
|
testRunner.setExitFullscreenForElementCallback(resolve);
|
|
});
|
|
|
|
consoleWrite('Exit fullscreen with target1');
|
|
run('document.webkitExitFullscreen()');
|
|
await exitFullScreenPromise;
|
|
changePromise = waitFor(document, 'webkitfullscreenchange')
|
|
|
|
run('internals.webkitWillExitFullScreenForElement(target1)');
|
|
|
|
consoleWrite('Attempt to enter fullscreen with target2');
|
|
internals.withUserGesture(() => { run('target2.webkitRequestFullScreen()'); });
|
|
|
|
await waitFor(target2, 'webkitfullscreenerror');
|
|
|
|
run('internals.webkitDidExitFullScreenForElement(target1)');
|
|
await changePromise;
|
|
|
|
testRunner.setHasCustomFullScreenBehavior(false);
|
|
|
|
endTest();
|
|
});
|
|
</script>
|
|
</head>
|
|
<body>
|
|
<span id="target1"></span>
|
|
<span id="target2"></span>
|
|
</body>
|
|
</html> |