| <!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> |