| <!DOCTYPE html> | |
| <html> | |
| <head> | |
| <title>Tests that cross-origin access is granted to null-origin embedded iframe</title> | |
| <script src="/resources/testharness.js"></script> | |
| <script src="/resources/testharnessreport.js"></script> | |
| <script src="/common/get-host-info.sub.js"></script> | |
| </head> | |
| <body> | |
| <script type="text/javascript"> | |
| const url = get_host_info().HTTP_REMOTE_ORIGIN + "/XMLHttpRequest/resources/access-control-origin-header.py"; | |
| async_test(function(test) { | |
| window.addEventListener("message", test.step_func(function(evt) { | |
| if (evt.data == "ready") { | |
| document.getElementById("frame").contentWindow.postMessage(url, "*"); | |
| } else { | |
| assert_equals(evt.data, "PASS: Cross-domain access allowed.\nHTTP_ORIGIN: null"); | |
| test.done(); | |
| } | |
| }), false); | |
| }, "Access granted to null-origin iframe"); | |
| </script> | |
| <iframe id="frame" src='data:text/html, | |
| <script> | |
| (function() { | |
| parent.postMessage("ready", "*"); | |
| window.addEventListener("message", function(evt) { | |
| try { | |
| const url = evt.data; | |
| const xhr = new XMLHttpRequest; | |
| xhr.open("GET", url, false); | |
| xhr.send(); | |
| parent.postMessage(xhr.responseText, "*"); | |
| } catch(e) { | |
| parent.postMessage(e.message, "*"); | |
| } | |
| }); | |
| })(); | |
| </script>'> | |
| </body> | |
| </html> |