| <!DOCTYPE html> |
| <meta charset=utf-8> |
| <title>`document.write` on inner iframe handles declarative shadow DOM</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <iframe></iframe> |
| <script> |
| promise_test(async () => { |
| await new Promise(res => window.addEventListener("load", res)); |
| let elem = document.querySelector("iframe"); |
| elem.contentDocument.write(` |
| <div> |
| <template shadowrootmode="open"><slot></slot></template> |
| <p>Test</p> |
| </div> |
| `); |
| let container = elem.contentDocument.querySelector("div"); |
| assert_true(!!container, "write should occur"); |
| assert_true(!!container.shadowRoot, "write should create shadowroot"); |
| assert_equals(container.innerText, "Test", "div should still contain text"); |
| }, "`document.write` on inner iframe handles declarative shadow DOM"); |
| </script> |