<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>Bug 1323983 - Auto-close window after holding pointerlock</title>
  <script src="/tests/SimpleTest/SimpleTest.js"></script>
  <script src="/tests/SimpleTest/EventUtils.js"></script>
  <link rel="stylesheet" href="/tests/SimpleTest/test.css">
</head>
<body style="width: 100vw; height: 100vh; margin: 0;">
  <script>
    if (!opener) {
      SimpleTest.waitForExplicitFinish();
    }

    var newwin = null;
    function finish() {
      newwin.close()
      setTimeout(function() {
        SimpleTest.finish();
      }, 0);
    }

    addLoadEvent(function() {
      SimpleTest.waitForFocus(function() {
        if (!opener) {
          newwin = window.open(location);
        } else {
          document.addEventListener("pointerlockchange", function() {
            opener.is(document.pointerLockElement, document.body,
                      "Check we have locked the pointer");
            opener.finish();
          }, {once: true});
          document.addEventListener("pointerlockerror", function() {
            opener.info("Fail to lock pointer");
            opener.finish();
          });
          document.addEventListener("click", function() {
            opener.info("Clicked");
            document.body.requestPointerLock();
          }, {once: true});
          setTimeout(function() {
            opener.info("Clicking");
            synthesizeMouseAtCenter(document.body, {});
          }, 0);
        }
      });
    });
  </script>
</body>
</html>