Skip to content

Commit

Permalink
Change subframe traverse navigate event timing
Browse files Browse the repository at this point in the history
This fires navigate events for subframes during a traversal earlier, before the unload event and in parallel with any fetches that occur. This is more consistent with non-traverse navigate events, and with top-level traverse navigate events.

WICG/navigation-api#207 has some previous relevant discussion. This represents moving from that issue's "late" navigate events to "early-but-still-async". It turns out the complexity was not too bad, when we got around to it in Chromium, and was actually helpful in order to fix a bug where traverse navigate events weren't firing when pages were bfcached.
  • Loading branch information
domenic authored and tcaptan-cr committed Nov 16, 2023
1 parent 2abe07d commit e6954c4
Showing 1 changed file with 10 additions and 11 deletions.
21 changes: 10 additions & 11 deletions source
Original file line number Diff line number Diff line change
Expand Up @@ -100273,6 +100273,16 @@ location.href = '#foo';</code></pre>
data-x="she-document-state">document state</span>'s <span
data-x="document-state-origin">origin</span>.</p></li>

<li id="descendant-navigable-traversal-navigate-events"><p>If <var>navigable</var> is not
<var>traversable</var>, and <var>targetEntry</var> is not <var>navigable</var>'s <span
data-x="nav-current-history-entry">current session history entry</span>, and
<var>oldOrigin</var> is the <span data-x="same origin">same</span> as <var>navigable</var>'s
<span data-x="nav-current-history-entry">current session history entry</span>'s <span
data-x="she-document-state">document state</span>'s <span
data-x="document-state-origin">origin</span>, then <span>fire a traverse <code
data-x="event-navigate">navigate</code> event</span> given <var>targetEntry</var> and
<var>userInvolvementForNavigateEvents</var>.</p></li>

<li>
<p>If <var>targetEntry</var>'s <span data-x="she-document">document</span> is null, or
<var>targetEntry</var>'s <span data-x="she-document-state">document state</span>'s <span
Expand Down Expand Up @@ -100525,17 +100535,6 @@ location.href = '#foo';</code></pre>
</ol>
</li>

<li id="descendant-navigable-traversal-navigate-events"><p>If <var>navigable</var> is not
<var>traversable</var>, and <var>targetEntry</var> is not <var>navigable</var>'s <span
data-x="nav-current-history-entry">current session history entry</span>, and
<var>targetEntry</var>'s <span data-x="she-document-state">document state</span>'s <span
data-x="document-state-origin">origin</span> is the <span data-x="same origin">same</span> as
<var>navigable</var>'s <span data-x="nav-current-history-entry">current session history
entry</span>'s <span data-x="she-document-state">document state</span>'s <span
data-x="document-state-origin">origin</span>, then <span>fire a traverse <code
data-x="event-navigate">navigate</code> event</span> given <var>targetEntry</var> and
<var>userInvolvementForNavigateEvents</var>.</p></li>

<li><p>Let <var>updateDocument</var> be an algorithm step which performs <span>update
document for history step application</span> given <var>targetEntry</var>'s <span
data-x="she-document">document</span>, <var>targetEntry</var>,
Expand Down

0 comments on commit e6954c4

Please sign in to comment.