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