| <!doctype html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <body> |
| <script> |
| async_test(t => { |
| let start_length = history.length; |
| |
| // Wait for after the load event so that the navigation doesn't get converted |
| // into a replace navigation. |
| window.onload = () => t.step_timeout(() => { |
| navigation.navigate("#top"); |
| assert_equals(navigation.entries().length, 2); |
| |
| let i = document.createElement("iframe"); |
| i.src = "/common/blank.html"; |
| document.body.appendChild(i); |
| i.onload = () => t.step_timeout(() => { |
| assert_equals(i.contentWindow.navigation.entries().length, 1); |
| i.contentWindow.navigation.navigate("#fragment"); |
| assert_equals(i.contentWindow.navigation.entries().length, 2); |
| i.contentWindow.navigation.back().committed.then(t.step_func(() => { |
| assert_equals(i.contentWindow.navigation.entries().length, 2); |
| assert_equals(i.contentWindow.navigation.currentEntry.index, 0); |
| return i.contentWindow.navigation.forward().committed; |
| })).then(t.step_func_done(() => { |
| assert_equals(i.contentWindow.navigation.entries().length, 2); |
| assert_equals(i.contentWindow.navigation.currentEntry.index, 1); |
| })); |
| }, 0); |
| }, 0); |
| }, "navigation.traverseTo() should work in an iframe that is not present in all history entries"); |
| </script> |
| </body> |