Source code
Revision control
Copy as Markdown
Other Tools
<!DOCTYPE html>
<script src="/tests/SimpleTest/SimpleTest.js"></script>
<script src="/tests/SimpleTest/EventUtils.js"></script>
<script src="file_fullscreen-utils.js"></script>
<style>
</style>
<button>Async Request Fullscreen</button>
<script>
function ok(condition, msg) {
opener.ok(condition, "[async] " + msg);
}
function is(a, b, msg) {
opener.is(a, b, "[async] " + msg);
}
function begin() {
SpecialPowers.pushPrefEnv({
"set":[["full-screen-api.allow-trusted-requests-only", true]]
}, startTest);
}
function startTest() {
let button = document.querySelector("button");
button.addEventListener("click", () => {
setTimeout(() => document.body.requestFullscreen(), 0);
});
addFullscreenChangeContinuation("enter", enteredFullscreen);
addFullscreenErrorContinuation(() => {
ok(false, "Failed to enter fullscreen");
exitedFullscreen();
});
synthesizeMouseAtCenter(button, {});
}
function enteredFullscreen() {
is(document.fullscreenElement, document.body, "Entered fullscreen");
addFullscreenChangeContinuation("exit", exitedFullscreen);
document.exitFullscreen();
}
function exitedFullscreen() {
SpecialPowers.popPrefEnv(finish);
}
function finish() {
opener.nextTest();
}
</script>