<!doctype html>
<html>
<head>
  <meta charset="utf-8">
  <title>Targeting nested browsing contexts</title>
  <script src="/resources/testharness.js"></script>
  <script src="/resources/testharnessreport.js"></script>
</head>
<body>
  <script>
    async_test(function (t) {
      var windowsToClose = [];
      window.onmessage = t.step_func(function (e) {
        if (e.data.name == "openee") {
          var a = document.body.appendChild(document.createElement('a'));
          a.target = "nested1";
          a.href = "support-post-to-opener.html";
          a.click();
          windowsToClose.push(e.source);
        } else {
          assert_equals(e.data.name, "nested1");
          assert_equals(e.data.isTop, true);
          windowsToClose.push(e.source);
          windowsToClose.forEach(function (w) {
            w.close();
          });
          t.done();
        }
      });

      var a = document.body.appendChild(document.createElement('a'));
      a.target = "openee";
      a.href = "http://{{domains[www2]}}:{{location[port]}}/html/browsers/windows/support-nested-browsing-contexts.html";
      a.click();
    });
  </script>
</body>
</html>
