<!doctype html><scriptsrc="/resources/testharness.js"></script><scriptsrc="/resources/testharnessreport.js"></script><metaname="variant"content="?no-currententrychange"><metaname="variant"content="?currententrychange"><scripttype="module">import{Recorder,hasVariant}from"./resources/helpers.mjs";promise_test(asynct=>{// Wait for after the load event so that the navigation doesn't get converted// into a replace navigation.awaitnewPromise(resolve=>window.onload=()=>t.step_timeout(resolve,0));awaitnavigation.navigate("#1").finished;constfrom=navigation.currentEntry;constrecorder=newRecorder({skipCurrentChange:!hasVariant("currententrychange"),finalExpectedEvent:"transition.finished fulfilled"});recorder.setUpNavigationAPIListeners();navigation.addEventListener("navigate",e=>{e.intercept({handler(){recorder.record("handler run");}});});constresult=navigation.back();recorder.setUpResultListeners(result);Promise.resolve().then(()=>recorder.record("promise microtask"));awaitrecorder.readyToAssert;recorder.assert([/* event name, location.hash value, navigation.transition properties */["promise microtask","#1",null],["navigate","#1",null],["currententrychange","",{from,navigationType:"traverse"}],["handler run","",{from,navigationType:"traverse"}],["committed fulfilled","",{from,navigationType:"traverse"}],["navigatesuccess","",{from,navigationType:"traverse"}],["finished fulfilled","",null],["transition.finished fulfilled","",null]]);},"event and promise ordering for same-document navigation.back() intercepted by intercept()");</script>