Navigation API: test that there are no events on initial load

See https://github.com/WICG/navigation-api/issues/31 and in particular
the concern about previous non-interop with popstate, which we want to
head off this time.

Bug: 1183545
Change-Id: If16a61a8b0a8846d2bcdbb05b3b7230e0f842b3c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3533169
Reviewed-by: Nate Chapin <japhet@chromium.org>
Commit-Queue: Domenic Denicola <domenic@chromium.org>
Auto-Submit: Domenic Denicola <domenic@chromium.org>
Cr-Commit-Position: refs/heads/main@{#982939}
diff --git a/navigation-api/currententrychange-event/not-on-load.html b/navigation-api/currententrychange-event/not-on-load.html
new file mode 100644
index 0000000..8cc1688
--- /dev/null
+++ b/navigation-api/currententrychange-event/not-on-load.html
@@ -0,0 +1,17 @@
+<!DOCTYPE html>
+<script src="/resources/testharness.js"></script>
+<script src="/resources/testharnessreport.js"></script>
+<!-- Per https://github.com/WICG/navigation-api/issues/31, make sure nothing happens on page loads -->
+
+<script>
+async_test(t => {
+  navigation.onnavigate = t.unreached_func("navigate must not fire");
+  navigation.oncurrententrychange = t.unreached_func("currententrychange must not fire");
+
+  // pageshow is the latest event in the normal document loading cycle.
+  // Ensure nothing happens even 10 ms afterward.
+  window.addEventListener("pageshow", () => t.step_timeout(() => {
+    t.done();
+  }, 10));
+}, "No navigation API events happen on initial page load");
+</script>