blob: 84fff843dfccd5c1391586f2567a98c45e160f9d [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<head>
<script src="/js-test-resources/js-test.js"></script>
<script src="../resources/pointer-lock/pointer-lock-test-harness.js"></script>
</head>
<body>
<div>
<div id="target1"></div>
<iframe src="../resources/pointer-lock/inner-iframe.html" onload="doNextStepWithUserGesture()"></iframe>
</div>
<script>
description("Test iframe from same origin can not transfer pointer lock across documents.")
window.jsTestIsAsync = true;
targetDiv1 = document.getElementById("target1");
iframe = document.getElementsByTagName("iframe")[0];
todo = [
function () {
expectOnlyChangeEvent("Lock targetDiv1.");
targetDiv1.requestPointerLock();
// doNextStep called by event handler.
},
function () {
shouldBe("document.pointerLockElement", "targetDiv1");
doNextStep();
},
function () {
iframe.contentWindow.postMessage(["eval", 'document.body.requestPointerLock().catch(()=>{})'], "*");
window.onmessage = function (messageEvent) {
message = messageEvent.data;
shouldBeEqualToString("message", "inner-iframe.html onpointerlockerror");
window.onmessage = null;
doNextStep();
}
},
function () {
iframe.contentWindow.postMessage(["eval", 'document.exitPointerLock()'], "*");
window.onmessage = function (messageEvent) {
testFailed("exitPointerLock from a document that doesn't have a lock caused an event " + messageEvent.data);
finishJSTest();
}
doNextStep();
},
];
// doNextStep() called by iframe onload handler.
</script>
</body>
</html>