OLD | NEW |
(Empty) | |
| 1 <!DOCTYPE HTML> |
| 2 <meta charset=utf-8> |
| 3 <script src="/resources/testharness.js"></script> |
| 4 <script src="/resources/testharnessreport.js"></script> |
| 5 <div id=log></div> |
| 6 <iframe></iframe> |
| 7 <iframe id="blob-test"></iframe> <!-- will get blob: URI --> |
| 8 <iframe src="javascript:'javascript'"></iframe> |
| 9 <iframe srcdoc="srcdoc"></iframe> |
| 10 <!-- Use the non-default HTTP port so we can make sure it gets included in |
| 11 self.origin --> |
| 12 <iframe src="http://{{domains[www1]}}:{{ports[http][1]}}{{location[path]}}/../re
sources/self-origin-subframe.html"></iframe> |
| 13 <!-- Using the punycode version on purpose, we expect to get back the IDNA |
| 14 version in self.origin --> |
| 15 <iframe src="http://xn--lve-6lad.{{domains[]}}:{{ports[http][1]}}{{location[path
]}}/../resources/self-origin-subframe.html"></iframe> |
| 16 <iframe src="resources/self-origin-subframe.html" sandbox="allow-scripts"></ifra
me> |
| 17 <script type="application/javascript"> |
| 18 test(function() { |
| 19 var blob = new Blob(['blob']); |
| 20 var url = URL.createObjectURL(blob); |
| 21 document.getElementById("blob-test").src = url; |
| 22 }, "Assigning blob url"); |
| 23 |
| 24 /* Each message test is a four things: window to send message to, message to |
| 25 send, expected response, async test to use. */ |
| 26 var messageTests = [ |
| 27 [ frames[4], "getOrigin", "http://{{domains[www1]}}:{{ports[http][1]}}", |
| 28 async_test("Should have the right origin for cross-origin subframe") ], |
| 29 [ frames[4], "setDomainAndGetOrigin", "http://{{domains[www1]}}:{{ports[http][
1]}}", |
| 30 async_test("Should have the right origin for cross-origin subframe after set
ting document.domain") ], |
| 31 [ frames[5], "getOrigin", "http://élève.{{domains[]}}:{{ports[http][1]}}", |
| 32 async_test("Should have the right origin for IDN subframe") ], |
| 33 [ frames[5], "setDomainAndGetOrigin", "http://élève.{{domains[]}}:{{ports[http
][1]}}", |
| 34 async_test("Should have the right origin for IDN subframe after setting docu
ment.domain") ], |
| 35 [ frames[6], "getOrigin", "null", |
| 36 async_test("Should have the right origin for sandboxed iframe") ], |
| 37 ]; |
| 38 |
| 39 var curTest = 0; |
| 40 function nextMessageTest() { |
| 41 if (curTest == messageTests.length) { |
| 42 return; |
| 43 } |
| 44 |
| 45 var testData = messageTests[curTest]; |
| 46 testData[0].postMessage(testData[1], "*"); |
| 47 } |
| 48 |
| 49 window.onmessage = function(e) { |
| 50 var testData = messageTests[curTest++]; |
| 51 testData[3].step_func(function() { |
| 52 assert_equals(e.data, testData[2]) |
| 53 }); |
| 54 testData[3].done(); |
| 55 nextMessageTest(); |
| 56 } |
| 57 |
| 58 addEventListener("load", nextMessageTest); |
| 59 |
| 60 test(function() { |
| 61 assert_equals(self.origin, "http://{{location[host]}}"); |
| 62 }, "We should have the right origin for our page"); |
| 63 |
| 64 var t1 = async_test("about:blank subframe origins"); |
| 65 addEventListener("load", t1.step_func_done(function() { |
| 66 assert_equals(frames[0].location.origin, "null", |
| 67 "Should have the right location origin for about:blank iframe"); |
| 68 assert_equals(frames[0].origin, "http://{{location[host]}}", |
| 69 "Should have the right origin for about:blank iframe"); |
| 70 })); |
| 71 |
| 72 var t2 = async_test("blob: subframe origins"); |
| 73 addEventListener("load", t2.step_func_done(function() { |
| 74 assert_equals(frames[1].location.origin, "http://{{location[host]}}", |
| 75 "Should have the right location origin for blob: iframe"); |
| 76 assert_equals(frames[1].origin, "http://{{location[host]}}", |
| 77 "Should have the right origin for blob: iframe"); |
| 78 })); |
| 79 |
| 80 var t3 = async_test("javascript: subframe origins"); |
| 81 addEventListener("load", t3.step_func_done(function() { |
| 82 assert_equals(frames[2].origin, "http://{{location[host]}}", |
| 83 "Should have the right origin for javascript: iframe"); |
| 84 })); |
| 85 |
| 86 var t4 = async_test("srcdoc subframe origins"); |
| 87 addEventListener("load", t4.step_func_done(function() { |
| 88 assert_equals(frames[3].location.origin, "null", |
| 89 "Should have the right location origin for srcdoc iframe"); |
| 90 assert_equals(frames[3].origin, "http://{{location[host]}}", |
| 91 "Should have the right origin for srcdoc iframe"); |
| 92 })); |
| 93 </script> |
OLD | NEW |