| <!DOCTYPE HTML> |
| <html> |
| <head> |
| <meta charset="utf-8"> |
| <title>Detect navigation.forward()</title> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <script src="/resources/testdriver.js"></script> |
| <script src="/resources/testdriver-vendor.js"></script> |
| <script src="resources/soft-navigation-helper.js"></script> |
| </head> |
| <body> |
| <main id=main> |
| <div> |
| <a id=link>Click me!</a> |
| </div> |
| </main> |
| <script> |
| window.onload = async () => { |
| // Wait for after the load event so that the navigation doesn't get converted |
| // into a replace navigation. |
| await new Promise(r => step_timeout(r, 0)); |
| |
| navigation.onnavigate = e => { |
| e.intercept(); |
| }; |
| // Push a couple of navigation entries, then go back so that we'd have a |
| // navigation entry to go forward to. |
| await navigation.navigate("other.html").finished; |
| await navigation.navigate("foobar.html").finished; |
| await navigation.back().finished; |
| |
| const link = document.getElementById("link"); |
| testSoftNavigation({ |
| addContent: () => { |
| addTextToDivOnMain(); |
| }, |
| link: link, |
| pushState: async () =>{ |
| await navigation.forward().committed; |
| }, |
| test: "`navigation.forward()` properly works with SoftNavigationHeuristics"}); |
| }; |
| </script> |
| </body> |
| </html> |
| |
| |