| // META: script=resources/wait-for-messages.js |
| |
| function testNavigation(url) { |
| return async (t) => { |
| // Start waiting for messages before inserting the child frame, to avoid any |
| // race conditions. |
| const messagesPromise = waitForMessages(3); |
| |
| const iframe = document.createElement("iframe"); |
| iframe.src = url; |
| document.body.appendChild(iframe); |
| |
| const messages = await messagesPromise; |
| assert_array_equals(messages, ["initial", "inner", "destination"]); |
| } |
| } |
| |
| promise_test( |
| testNavigation("resources/child-navigates-parent-location-initial.html"), |
| "Child document navigates same-origin parent via document.location"); |
| |
| promise_test( |
| testNavigation("resources/child-navigates-parent-submit-initial.html"), |
| "Child document navigates same-origin parent via form submission"); |