| Index: third_party/WebKit/LayoutTests/external/wpt/html/dom/self-origin.sub.html
 | 
| diff --git a/third_party/WebKit/LayoutTests/external/wpt/html/dom/self-origin.sub.html b/third_party/WebKit/LayoutTests/external/wpt/html/dom/self-origin.sub.html
 | 
| new file mode 100644
 | 
| index 0000000000000000000000000000000000000000..4143a4a20ab4459a73dca5700cae2275c53293ee
 | 
| --- /dev/null
 | 
| +++ b/third_party/WebKit/LayoutTests/external/wpt/html/dom/self-origin.sub.html
 | 
| @@ -0,0 +1,93 @@
 | 
| +<!DOCTYPE HTML>
 | 
| +<meta charset=utf-8>
 | 
| +<script src="/resources/testharness.js"></script>
 | 
| +<script src="/resources/testharnessreport.js"></script>
 | 
| +<div id=log></div>
 | 
| +<iframe></iframe>
 | 
| +<iframe id="blob-test"></iframe> <!-- will get blob: URI -->
 | 
| +<iframe src="javascript:'javascript'"></iframe>
 | 
| +<iframe srcdoc="srcdoc"></iframe>
 | 
| +<!-- Use the non-default HTTP port so we can make sure it gets included in
 | 
| +     self.origin -->
 | 
| +<iframe src="http://{{domains[www1]}}:{{ports[http][1]}}{{location[path]}}/../resources/self-origin-subframe.html"></iframe>
 | 
| +<!-- Using the punycode version on purpose, we expect to get back the IDNA
 | 
| +     version in self.origin -->
 | 
| +<iframe src="http://xn--lve-6lad.{{domains[]}}:{{ports[http][1]}}{{location[path]}}/../resources/self-origin-subframe.html"></iframe>
 | 
| +<iframe src="resources/self-origin-subframe.html" sandbox="allow-scripts"></iframe>
 | 
| +<script type="application/javascript">
 | 
| +test(function() {
 | 
| +  var blob = new Blob(['blob']);
 | 
| +  var url = URL.createObjectURL(blob);
 | 
| +  document.getElementById("blob-test").src = url;
 | 
| +}, "Assigning blob url");
 | 
| +
 | 
| +/* Each message test is a four things: window to send message to, message to
 | 
| +   send, expected response, async test to use. */
 | 
| +var messageTests = [
 | 
| +  [ frames[4], "getOrigin", "http://{{domains[www1]}}:{{ports[http][1]}}",
 | 
| +    async_test("Should have the right origin for cross-origin subframe") ],
 | 
| +  [ frames[4], "setDomainAndGetOrigin", "http://{{domains[www1]}}:{{ports[http][1]}}",
 | 
| +    async_test("Should have the right origin for cross-origin subframe after setting document.domain") ],
 | 
| +  [ frames[5], "getOrigin", "http://élève.{{domains[]}}:{{ports[http][1]}}",
 | 
| +    async_test("Should have the right origin for IDN subframe") ],
 | 
| +  [ frames[5], "setDomainAndGetOrigin", "http://élève.{{domains[]}}:{{ports[http][1]}}",
 | 
| +    async_test("Should have the right origin for IDN subframe after setting document.domain") ],
 | 
| +  [ frames[6], "getOrigin", "null",
 | 
| +    async_test("Should have the right origin for sandboxed iframe") ],
 | 
| +];
 | 
| +
 | 
| +var curTest = 0;
 | 
| +function nextMessageTest() {
 | 
| +  if (curTest == messageTests.length) {
 | 
| +    return;
 | 
| +  }
 | 
| +
 | 
| +  var testData = messageTests[curTest];
 | 
| +  testData[0].postMessage(testData[1], "*");
 | 
| +}
 | 
| +
 | 
| +window.onmessage = function(e) {
 | 
| +  var testData = messageTests[curTest++];
 | 
| +  testData[3].step_func(function() {
 | 
| +    assert_equals(e.data, testData[2])
 | 
| +  });
 | 
| +  testData[3].done();
 | 
| +  nextMessageTest();
 | 
| +}
 | 
| +
 | 
| +addEventListener("load", nextMessageTest);
 | 
| +
 | 
| +test(function() {
 | 
| +  assert_equals(self.origin, "http://{{location[host]}}");
 | 
| +}, "We should have the right origin for our page");
 | 
| +
 | 
| +var t1 = async_test("about:blank subframe origins");
 | 
| +addEventListener("load", t1.step_func_done(function() {
 | 
| +  assert_equals(frames[0].location.origin, "null",
 | 
| +                "Should have the right location origin for about:blank iframe");
 | 
| +  assert_equals(frames[0].origin, "http://{{location[host]}}",
 | 
| +                "Should have the right origin for about:blank iframe");
 | 
| +}));
 | 
| +
 | 
| +var t2 = async_test("blob: subframe origins");
 | 
| +addEventListener("load", t2.step_func_done(function() {
 | 
| +  assert_equals(frames[1].location.origin, "http://{{location[host]}}",
 | 
| +                "Should have the right location origin for blob: iframe");
 | 
| +  assert_equals(frames[1].origin, "http://{{location[host]}}",
 | 
| +                "Should have the right origin for blob: iframe");
 | 
| +}));
 | 
| +
 | 
| +var t3 = async_test("javascript: subframe origins");
 | 
| +addEventListener("load", t3.step_func_done(function() {
 | 
| +  assert_equals(frames[2].origin, "http://{{location[host]}}",
 | 
| +                "Should have the right origin for javascript: iframe");
 | 
| +}));
 | 
| +
 | 
| +var t4 = async_test("srcdoc subframe origins");
 | 
| +addEventListener("load", t4.step_func_done(function() {
 | 
| +  assert_equals(frames[3].location.origin, "null",
 | 
| +                "Should have the right location origin for srcdoc iframe");
 | 
| +  assert_equals(frames[3].origin, "http://{{location[host]}}",
 | 
| +                "Should have the right origin for srcdoc iframe");
 | 
| +}));
 | 
| +</script>
 | 
| 
 |