| Index: LayoutTests/pointer-lock/locked-element-iframe-removed-from-dom-prefixed.html
|
| diff --git a/LayoutTests/pointer-lock/locked-element-iframe-removed-from-dom-prefixed.html b/LayoutTests/pointer-lock/locked-element-iframe-removed-from-dom-prefixed.html
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..0ede42e1977adc36030e0f52566b94838b2c598c
|
| --- /dev/null
|
| +++ b/LayoutTests/pointer-lock/locked-element-iframe-removed-from-dom-prefixed.html
|
| @@ -0,0 +1,48 @@
|
| +<!DOCTYPE HTML>
|
| +<html>
|
| +<head>
|
| +<script src="../resources/js-test.js"></script>
|
| +<script src="../http/tests/resources/pointer-lock/pointer-lock-test-harness-prefixed.js"></script>
|
| +</head>
|
| +<body>
|
| +<div>
|
| + <iframe id="iframe1"></iframe>
|
| + <div id="target2"></div>
|
| +</div>
|
| +<script>
|
| + description("Test removing an iframe containing a locked element causes lock to be released.")
|
| + window.jsTestIsAsync = true;
|
| +
|
| + targetIframe1 = document.getElementById("iframe1");
|
| + targetDiv2 = document.getElementById("target2");
|
| +
|
| + todo = [
|
| + function () {
|
| + // Load a blank iframe.
|
| + targetIframe1.src = "about:blank";
|
| + targetIframe1.onload = function () { doNextStepWithUserGesture(); }
|
| + },
|
| + function () {
|
| + // Nest target element into iframe document.
|
| + targetIframe1.contentDocument.body.innerHTML ="<div><div></div></div>";
|
| + targetDiv1 = targetIframe1.contentDocument.body.firstChild.firstChild
|
| + expectNoEvents("Lock target in iframe. (main document handler)");
|
| + expectOnlyChangeEvent("Lock target in iframe. (iframe handler)", targetIframe1.contentDocument);
|
| + targetDiv1.webkitRequestPointerLock();
|
| + // doNextStep called by event handler.
|
| + },
|
| + function () {
|
| + shouldBe("targetIframe1.contentDocument.webkitPointerLockElement", "targetDiv1");
|
| + shouldBe("targetDiv1.parentElement.parentElement", "targetIframe1.contentDocument.body");
|
| + expectOnlyChangeEvent("Remove iframe & immediately lock target2. (main document handler)");
|
| + expectNoEvents("Remove iframe & immediately lock target2. (iframe handler)", targetIframe1.contentDocument);
|
| + targetIframe1.parentElement.removeChild(targetIframe1);
|
| + targetDiv2.webkitRequestPointerLock();
|
| + shouldBe("document.webkitPointerLockElement", "null");
|
| + // doNextStep called by event handler.
|
| + },
|
| + ];
|
| + doNextStep();
|
| +</script>
|
| +</body>
|
| +</html>
|
|
|