| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <script src="resources/recv.js"></script> | |
| <script> | |
| if (window.testRunner) { | |
| testRunner.dumpAsText(); | |
| testRunner.waitUntilDone(); | |
| } | |
| addEventListener("message", recv, false); | |
| function tryPostMessage(win, origin) { | |
| try { | |
| win.postMessage("Trying origin=" + origin, origin); | |
| } catch(ex) { | |
| log("Error sending message to " + origin + ". " + ex); | |
| } | |
| } | |
| function test() { | |
| var winLocalhost = document.getElementById('iframe-localhost').contentWindow; | |
| var win127= document.getElementById('iframe-127').contentWindow; | |
| // Should succeed: | |
| tryPostMessage(winLocalhost, "http://localhost:8000"); | |
| tryPostMessage(winLocalhost, "http://localhost:8000/"); | |
| tryPostMessage(winLocalhost, "http://localhost:8000/foo"); | |
| tryPostMessage(winLocalhost, "http://localhost:8000/foo?bar"); | |
| tryPostMessage(winLocalhost, "http://localhost:8000/foo?bar#baz"); | |
| tryPostMessage(winLocalhost, "http://user:pass@localhost:8000/foo?bar#baz"); | |
| tryPostMessage(winLocalhost, "*"); | |
| tryPostMessage(win127, "/"); | |
| // Should fail: | |
| tryPostMessage(winLocalhost, "/"); | |
| tryPostMessage(winLocalhost, "http://localhost:9090"); | |
| tryPostMessage(winLocalhost, "http://localhost"); | |
| tryPostMessage(winLocalhost, "https://localhost"); | |
| tryPostMessage(winLocalhost, "https://localhost:8000"); | |
| tryPostMessage(winLocalhost, "http://www.example.com"); | |
| // Should throw syntax error: | |
| tryPostMessage(winLocalhost, null); | |
| tryPostMessage(winLocalhost, undefined); | |
| tryPostMessage(win127, "//"); | |
| winLocalhost.postMessage('done', '*'); | |
| } | |
| </script> | |
| <body onload="test()"> | |
| <div>window.location.href = <script>document.write(window.location.href);</script></div> | |
| <div><iframe src="http://localhost:8000/security/postMessage/resources/post-message-listener.html" | |
| id="iframe-localhost" width="800" height="300" style="border: 1px solid black;"> | |
| </iframe><iframe src="http://127.0.0.1:8000/security/postMessage/resources/post-message-listener.html" | |
| id="iframe-127" width="800" height="300" style="border: 1px solid black;"></iframe> | |
| <div id="result">waiting...</div> | |
| </body> | |
| </html> |