summaryrefslogtreecommitdiffstats
path: root/testing/web-platform/tests/html/semantics/embedded-content/the-iframe-element/iframe_sandbox_popups_helper-2.html
blob: ea28cf53754ab4eed1dada0cf630da6deae450df (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
<!DOCTYPE html>
<body>
<script>
  if (opener) {
    // We're the popup.  Send back our state.  What we really want to send is
    // our origin, but that will come automatically.
    opener.postMessage(undefined, "*");
    self.close();
  } else {
    // We're the child.  Start listening for messages from our parent and open
    // ourselves as the popup when we get the "start" message.
    onmessage = function (e) {
      if (e.data == "start") {
        // Now listen for messages from the thing we plan to open.
        onmessage = function(e) {
          parent.postMessage({ data: e.data, origin: e.origin }, "*");
        }

        var a = document.createElement("a");
        a.href = location.href;
        a.target = "_blank";
        a.rel = "opener";
        document.body.appendChild(a);
        a.click();
      }
    };
  }
</script>