| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>XMLHttpRequest: open() in document that is not fully active (but may be active) should throw</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <link rel="help" href="https://xhr.spec.whatwg.org/#the-open()-method"> |
| </head> |
| <body> |
| <div id="log"></div> |
| <script> |
| var test = async_test(), |
| client, |
| count = 0, |
| win = window.open("resources/init.htm"); |
| test.add_cleanup(function() { win.close(); }); |
| function init() { |
| test.step(function() { |
| if(0 == count) { |
| var doc = win.document; |
| var ifr = document.createElement("iframe"); |
| ifr.onload = function() { |
| // Again, do things async so we're not doing loads from inside |
| // load events. |
| test.step_timeout(function() { |
| client = new ifr.contentWindow.XMLHttpRequest(); |
| count++; |
| // Important to do a normal navigation, not a reload. |
| win.location.href = "resources/init.htm?avoid-replace"; |
| }, 0); |
| } |
| doc.body.appendChild(ifr); |
| } else if(1 == count) { |
| assert_throws("InvalidStateError", function() { client.open("GET", "...") }) |
| test.done() |
| } |
| }) |
| } |
| </script> |
| </body> |
| </html> |