<!DOCTYPE html>
<html>
<head>
<script src="resources/recv.js"></script>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}
 
addEventListener("message", recv, false);

function tryPostMessage(origin) {
  try {
    win.postMessage("Trying origin=" + origin, origin);
    document.getElementById("result").innerHTML += "<br>Posted message to '" + origin + "' without any exceptions.";
  } catch(ex) {
    document.getElementById("result").innerHTML += "<br>Encountered exception " + ex + " while posting message to '" + origin + "'.";
  }
}

function test() {
    var iframe = document.getElementById('child');
    win = iframe.contentWindow;

    // Non-URLs should fail with a syntax error.
    tryPostMessage("");
    tryPostMessage("asdf");
    tryPostMessage("/tmp/foo");
    tryPostMessage("//localhost");

    // URLs without an origin should fail without generating any errors.
    tryPostMessage("asdf:");
    tryPostMessage("http:");
    
    win.postMessage('done', '*');
}
</script>
<body>
<div>window.location.href = <script>document.write(window.location.href);</script></div>
<div id="result">waiting...</div>
<div><iframe src="http://localhost:8000/security/postMessage/resources/post-message-listener.html" onload="test()"
  id="child" width="800" height="300" style="border: 1px solid black;">
</iframe></div>
</body>
</html>
