| async_test(t => { |
| // Setting document.domain makes this document cross-origin with that of the frame. However, |
| // about:blank will end up reusing the origin of this document, at which point the frame's |
| // document is no longer cross-origin. |
| const frame = document.body.appendChild(document.createElement('iframe')); |
| document.domain = document.domain; |
| frame.src = "/common/blank.html"; |
| frame.onload = t.step_func(() => { |
| assert_throws_dom("SecurityError", () => window[0].document); |
| frame.src = "about:blank"; |
| frame.onload = t.step_func_done(() => { |
| // Ensure we can access the child browsing context after navigation to non-initial about:blank |
| assert_equals(window[0].document, frame.contentDocument); |
| }); |
| }); |
| }, "Navigated frame to about:blank and document.domain"); |