| <!doctype html> |
| <title>document.write only writes to active documents</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body><div id="log"></div></body> |
| <script> |
| async_test(function(t) { |
| var child = document.createElement("iframe"); |
| child.src = "empty.html?1"; |
| child.onload = t.step_func(function() { |
| var child1 = child.contentDocument; |
| var link = child1.createElement("a"); |
| link.href = "data:text/html,Clicked."; |
| link.innerText = "Link."; |
| child1.body.appendChild(link); |
| var grandchild = child1.createElement("iframe"); |
| grandchild.src = "empty.html?2"; |
| grandchild.onload = t.step_func(function() { |
| var grandchild1 = grandchild.contentDocument; |
| child.onload = t.step_func(function() { |
| // This is a write to an inactive document |
| child1.write('WRITE HAPPENED'); |
| assert_equals(child1.body.lastChild.tagName, "IFRAME"); |
| // This is a write to an active but not fully active document |
| grandchild1.write('WRITE HAPPENED'); |
| assert_equals(grandchild1.body.innerHTML, "WRITE HAPPENED"); |
| t.done(); |
| }); |
| link.click(); |
| }); |
| child1.body.appendChild(grandchild); |
| }); |
| document.body.appendChild(child); |
| }); |
| </script> |