<!DOCTYPE HTML> <html> <!-- https://bugzilla.mozilla.org/show_bug.cgi?id=633602 --> <head> <title>Bug 633602 - file_nestedFullScreen.html</title> <script type="application/javascript" src="/tests/SimpleTest/SimpleTest.js"> </script> <script type="application/javascript" src="/tests/SimpleTest/EventUtils.js"> </script> <script type="application/javascript" src="pointerlock_utils.js"></script> <link rel="stylesheet" type="text/css" href="/tests/SimpleTest/test.css"/> </head> <body> <a target="_blank" href="https://bugzilla.mozilla.org/show_bug.cgi?id=633602"> Mozilla Bug 633602 </a> <div id="parentDiv"> <div id="childDiv"></div> </div> <script type="application/javascript"> /* * Test for Bug 633602 * Requesting fullscreen on a child element of the element with * the pointer locked should unlock the pointer */ SimpleTest.waitForExplicitFinish(); var parentDiv = document.getElementById("parentDiv") , childDiv = document.getElementById("childDiv") , parentDivLocked = false , parentDivFullScreen = false , pointerLocked = false; function runTests () { ok(parentDivLocked, "After requesting pointerlock on parentDiv " + "document.pointerLockElement should be equal to " + " parentDiv element"); isnot(pointerLocked, true, "Requesting fullscreen on " + "childDiv while parentDiv still in fullscreen should " + "unlock the pointer"); } document.addEventListener("pointerlockchange", function (e) { if (document.pointerLockElement === parentDiv) { parentDivLocked = true; addFullscreenChangeContinuation("enter", function() { pointerLocked = !!document.pointerLockElement; addFullscreenChangeContinuation("exit", function() { addFullscreenChangeContinuation("exit", function() { runTests(); SimpleTest.finish(); }); document.exitFullscreen(); }); document.exitFullscreen(); }); childDiv.requestFullscreen(); } }, false); function start() { addFullscreenChangeContinuation("enter", function() { parentDivFullScreen = true; parentDiv.requestPointerLock(); }); parentDiv.requestFullscreen(); } </script> </body> </html>