<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/utils.js"></script>
<script src="/common/dispatcher/dispatcher.js"></script>
<script src="/html/browsers/browsing-the-web/back-forward-cache/resources/helper.sub.js"></script>

<script>
runBfcacheTest({
  targetOrigin: originSameOrigin,
  funcBeforeBackNavigation: () => {
    window.did_navigate = false;
    navigation.onnavigate = () => window.did_navigate = true;
  },
  async funcAfterAssertion(pageA, pageB) {
    // When `funcAfterAssertion` is called, we've already navigated to pageB,
    // then gone back to pageA with bfcache. Now go forward to pageB so we can
    // observe whether the navigate event fired.
    await pageA.execute_script(() => { prepareNavigation(() => history.forward()); }, []);
    await pageB.execute_script(waitForPageShow);
    assert_true(await pageB.execute_script(() => window.did_navigate));
  }
}, "navigate event should fire when traversing to a bfcache hit");
</script>
