OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE HTML> |
| 2 <html> |
| 3 <head> |
| 4 <script src="../resources/js-test.js"></script> |
| 5 <script src="../http/tests/resources/pointer-lock/pointer-lock-test-harness-pref
ixed.js"></script> |
| 6 </head> |
| 7 <body> |
| 8 <div> |
| 9 <iframe id="iframe1"></iframe> |
| 10 <div id="target2"></div> |
| 11 </div> |
| 12 <script> |
| 13 description("Test removing a locked element from a document causes lock to b
e released.") |
| 14 window.jsTestIsAsync = true; |
| 15 |
| 16 targetIframe1 = document.getElementById("iframe1"); |
| 17 targetDiv2 = document.getElementById("target2"); |
| 18 |
| 19 todo = [ |
| 20 function () { |
| 21 // Load a blank iframe. |
| 22 targetIframe1.src = "about:blank"; |
| 23 targetIframe1.onload = function () { doNextStepWithUserGesture(); } |
| 24 }, |
| 25 function () { |
| 26 // Nest target element into iframe document. |
| 27 targetIframe1.contentDocument.body.innerHTML ="<div><div></div></div
>"; |
| 28 targetDiv1 = targetIframe1.contentDocument.body.firstChild.firstChil
d |
| 29 expectNoEvents("Lock target in iframe. (main document handler)."); |
| 30 expectOnlyChangeEvent("Lock target in iframe. (iframe handler)", tar
getIframe1.contentDocument); |
| 31 targetDiv1.webkitRequestPointerLock(); |
| 32 // doNextStep called by event handler. |
| 33 }, |
| 34 function () { |
| 35 shouldBe("targetIframe1.contentDocument.webkitPointerLockElement", "
targetDiv1"); |
| 36 shouldBe("targetDiv1.parentElement.parentElement", "targetIframe1.co
ntentDocument.body"); |
| 37 expectOnlyErrorEvent("Remove targetDiv1's parent from iframe & immed
iately lock target2. (main document handler)"); |
| 38 expectOnlyChangeEvent("Remove targetDiv1's parent from iframe & imme
diately lock target2. (iframe handler)", targetIframe1.contentDocument); |
| 39 targetDiv1.parentElement.parentElement.removeChild(targetDiv1.parent
Element); |
| 40 targetDiv2.webkitRequestPointerLock(); |
| 41 shouldBe("document.webkitPointerLockElement", "null"); |
| 42 shouldBe("targetDiv1.parentElement.parentElement", "null"); |
| 43 // doNextStep called by event handler. |
| 44 }, |
| 45 function () { |
| 46 // Absorb an extra doNextStep() from previous event handlers. |
| 47 }, |
| 48 ]; |
| 49 doNextStep(); |
| 50 </script> |
| 51 </body> |
| 52 </html> |
OLD | NEW |