diff --git a/source b/source
index 3ec21624416..21172f0b332 100644
--- a/source
+++ b/source
@@ -87746,18 +87746,75 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
   </ol>
 
   <p>To <dfn data-x="obtain-browsing-context-navigation">obtain a browsing context to use for a
-  navigation response</dfn>, given a <span>browsing context</span> <var>browsingContext</var>, a
-  <span>sandboxing flag set</span> <var>sandboxFlags</var>, an <span>opener policy</span>
-  <var>navigationCOOP</var>, and an <span data-x="coop-enforcement-result">opener policy enforcement
-  result</span> <var>coopEnforcementResult</var>:</p>
+  navigation response</dfn>, given <span>navigation params</span> <var>navigationParams</var>:</p>
 
   <ol>
+   <li><p>Let <var>browsingContext</var> be <var>navigationParams</var>'s <span
+   data-x="navigation-params-navigable">navigable</span>'s <span data-x="nav-bc">active browsing
+   context</span>.</p></li>
+
    <li><p>If <var>browsingContext</var> is not a <span>top-level browsing context</span>, then
    return <var>browsingContext</var>.</p></li>
 
+   <li><p>Let <var>coopEnforcementResult</var> be <var>navigationParams</var>'s <span
+   data-x="navigation-params-coop-enforcement-result">COOP enforcement result</span>.</p></li>
+
+   <li><p>Let <var>swapGroup</var> be <var>coopEnforcementResult</var>'s <span
+   data-x="coop-enforcement-bcg-switch">needs a browsing context group switch</span>.</p></li>
+
+   <li><p>Let <var>sourceOrigin</var> be <var>browsingContext</var>'s
+   <span>active document</span>'s <span data-x="concept-document-origin">origin</span>.</p></li>
+
+   <li><p>Let <var>destinationOrigin</var> be <var>navigationParams</var>'s <span
+   data-x="navigation-params-origin">origin</span>.</p></li>
+
    <li>
-    <p>If <var>coopEnforcementResult</var>'s <span data-x="coop-enforcement-bcg-switch">needs a
-    browsing context group switch</span> is false, then:</p>
+    <p>If <var>sourceOrigin</var> is not <span>same site</span> with
+    <var>destinationOrigin</var>:</p>
+
+    <ol>
+     <li>
+      <p>If either of <var>sourceOrigin</var> or <var>destinationOrigin</var> have a <span
+      data-x="concept-origin-scheme">scheme</span> that is not an <span>HTTP(S) scheme</span> and
+      the user agent considers it necessary for <var>sourceOrigin</var> and
+      <var>destinationOrigin</var> to be isolated from each other (for
+      <span>implementation-defined</span> reasons), optionally set <var>swapGroup</var> to true.</p>
+
+      <p class="note">For example, if a user navigates from <code data-x="">about:settings</code> to
+      <code data-x="">https://example.com</code>, the user agent could force a swap.</p>
+
+      <p class="XXX"><a href="https://github.com/whatwg/html/issues/10842">Issue #10842</a> tracks
+      settling on an interoperable behavior here, instead of letting this be optional.</p>
+     </li>
+
+     <li>
+      <p>If <var>navigationParams</var>'s <span data-x="navigation-params-user-involvement"> user
+      involvement</span> is "<code data-x="uni-browser-ui">browser UI</code>", optionally set
+      <var>swapGroup</var> to true.</p>
+
+      <p class="XXX"><a href="https://github.com/whatwg/html/issues/6356">Issue #6356</a> tracks
+      settling on an interoperable behavior here, instead of letting this be optional.</p>
+     </li>
+    </ol>
+   </li>
+
+   <li>
+    <p>If <var>browsingContext</var>'s <span data-x="tlbc group">group</span>'s <span>browsing
+    context set</span>'s <span data-x="list size">size</span> is 1, optionally set
+    <var>swapGroup</var> to true.</p>
+
+    <p class="note">Some implementations swap browsing context groups here for performance
+    reasons.</p>
+
+    <p class="note">The check for other contexts that could script this one is not sufficient to
+    prevent differences in behavior that could affect a web page. Even if there are currently no
+    other contexts, the destination page could open a window, then if the user navigates back, the
+    previous page could expect to be able to script the opened window. Doing a swap here would break
+    that use case.</p>
+   </li>
+
+   <li>
+    <p>If <var>swapGroup</var> is false, then:</p>
 
     <ol>
      <li><p>If <var>coopEnforcementResult</var>'s <span
@@ -87781,6 +87838,9 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
     might <a href="#a-browsing-context-is-discarded">destroy it</a> at this point.</p>
    </li>
 
+   <li><p>Let <var>navigationCOOP</var> be <var>navigationParams</var>'s <span
+   data-x="navigation-params-coop">cross-origin opener policy</span>.</p></li>
+
    <li>
     <p>If <var>navigationCOOP</var>'s <span data-x="coop-struct-value">value</span> is "<code
     data-x="coop-same-origin-plus-COEP">same-origin-plus-COEP</code>", then set
@@ -87797,6 +87857,10 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
     not.</p>
    </li>
 
+   <li><p>Let <var>sandboxFlags</var> be a <span data-x="list clone">clone</span> of
+   <var>navigationParams</var>'s <span
+   data-x="navigation-params-sandboxing">final sandboxing flag set</span>.</p></li>
+
    <li>
     <p>If <var>sandboxFlags</var> is not empty, then:</p>
     <ol>
@@ -87806,8 +87870,8 @@ dictionary <dfn dictionary>DragEventInit</dfn> : <span>MouseEventInit</span> {
      <li><p><span>Assert</span>: <var>newBrowsingContext</var>'s <span>popup sandboxing flag
      set</span> <span data-x="list is empty">is empty</span>.</p></li>
 
-     <li><p>Set <var>newBrowsingContext</var>'s <span>popup sandboxing flag set</span> to a <span
-     data-x="list clone">clone</span> of <var>sandboxFlags</var>.</p></li>
+     <li><p>Set <var>newBrowsingContext</var>'s <span>popup sandboxing flag set</span> to
+     <var>sandboxFlags</var>.</p></li>
     </ol>
    </li>
 
@@ -97762,6 +97826,112 @@ interface <dfn interface>NotRestoredReasons</dfn> {
 
   <hr>
 
+  <p>To <dfn>find a navigable by target name</dfn> given a string <var>name</var> and a
+  <span>navigable</span> <var>currentNavigable</var>:</p>
+
+  <ol>
+   <li><p>Let <var>currentDocument</var> be <var>currentNavigable</var>'s <span
+   data-x="nav-document">active document</span>.</p></li>
+
+   <li><p>Let <var>sourceSnapshotParams</var> be the result of <span>snapshotting source snapshot
+   params</span> given <var>currentDocument</var>.</p></li>
+
+   <li>
+    <p>Let <var>subtreesToSearch</var> be an <span>implementation-defined</span> choice of one of
+    the following:</p>
+
+    <ul>
+     <li><p>« <var>currentNavigable</var>'s <span data-x="nav-traversable">traversable
+     navigable</span>, <var>currentNavigable</var> »</p></li>
+
+     <li><p>the <span>inclusive ancestor navigables</span> of <var>currentDocument</var></p></li>
+    </ul>
+
+    <p class="XXX"><a href="https://github.com/whatwg/html/issues/10848">Issue #10848</a> tracks
+    settling on one of these two possibilities, to achieve interoperability.</p>
+   </li>
+
+   <li>
+    <p><span data-x="list iterate">For each</span> <var>subtreeToSearch</var> of
+    <var>subtreesToSearch</var>, in reverse order:</p>
+
+    <ol>
+     <li><p>Let <var>documentToSearch</var> be <var>subtreeToSearch</var>'s <span
+     data-x="nav-document">active document</span>.</p></li>
+
+     <li>
+      <p><span data-x="list iterate">For each</span> <var>navigable</var> of the <span>inclusive
+      descendant navigables</span> of <var>documentToSearch</var>:</p>
+
+      <ol>
+       <li>
+        <p>If <var>currentNavigable</var> is not <span>allowed by sandboxing to navigate</span>
+        <var>navigable</var> given <var>sourceSnapshotParams</var>, then optionally
+        <span>continue</span>.</p>
+
+        <p class="XXX"><a href="https://github.com/whatwg/html/issues/10849">Issue #10849</a> tracks
+        making this check required, to achieve interoperability.</p>
+       </li>
+
+       <li><p>If <var>navigable</var>'s <span data-x="nav-target">target name</span> is
+       <var>name</var>, then return <var>navigable</var>.</p></li>
+      </ol>
+     </li>
+    </ol>
+   </li>
+
+   <li><p>Let <var>currentTopLevelBrowsingContext</var> be <var>currentNavigable</var>'s <span
+   data-x="nav-bc">active browsing context</span>'s <span data-x="bc-tlbc">top-level browsing
+   context</span>.</p></li>
+
+   <li><p>Let <var>group</var> be <var>currentTopLevelBrowsingContext</var>'s <span data-x="tlbc
+   group">group</span>.</p></li>
+
+   <li>
+    <p><span data-x="list iterate">For each</span> <var>topLevelBrowsingContext</var> of
+    <var>group</var>'s <span>browsing context set</span>, in an <span>implementation-defined</span>
+    order (the user agent should pick a consistent ordering, such as the most recently opened, most
+    recently focused, or more closely related):</p>
+
+    <p class="XXX"><a href="https://github.com/whatwg/html/issues/10850">Issue #10850</a> tracks
+    picking a specific ordering, to achieve interoperability.</p>
+
+    <ol>
+     <li><p>If <var>currentTopLevelBrowsingContext</var> is <var>topLevelBrowsingContext</var>, then
+     <span>continue</span>.</p></li>
+
+     <li><p>Let <var>documentToSearch</var> be <var>topLevelBrowsingContext</var>'s <span>active
+     document</span>.</p></li>
+
+     <li>
+      <p><span data-x="list iterate">For each</span> <var>navigable</var> of the <span>inclusive
+      descendant navigables</span> of <var>documentToSearch</var>:</p>
+
+      <ol>
+       <li><p>If <var>currentNavigable</var>'s <span data-x="nav-bc">active browsing context</span>
+       is not <span>familiar with</span> <var>navigable</var>'s <span data-x="nav-bc">active
+       browsing context</span>, then <span>continue</span>.</p></li>
+
+       <li>
+        <p>If <var>currentNavigable</var> is not <span>allowed by sandboxing to navigate</span>
+        <var>navigable</var> given <var>sourceSnapshotParams</var>, then optionally
+        <span>continue</span>.</p>
+
+
+        <p class="XXX"><a href="https://github.com/whatwg/html/issues/10849">Issue #10849</a> tracks
+        making this check required, to achieve interoperability.</p>
+       </li>
+
+       <li><p>If <var>navigable</var>'s <span data-x="nav-target">target name</span> is
+       <var>name</var>, then return <var>navigable</var>.</p></li>
+      </ol>
+     </li>
+    </ol>
+   </li>
+
+   <li><p>Return null.</p></li>
+  </ol>
+
   <p id="the-rules-for-choosing-a-browsing-context-given-a-browsing-context-name"><dfn>The rules
   for choosing a navigable</dfn>, given a string <var>name</var>, a <span>navigable</span>
   <var>currentNavigable</var>, and a boolean <var>noopener</var> are as follows:</p>
@@ -97786,21 +97956,11 @@ interface <dfn interface>NotRestoredReasons</dfn> {
    data-x="">_top</code>", set <var>chosen</var> to <var>currentNavigable</var>'s <span
    data-x="nav-traversable">traversable navigable</span>.</p></li>
 
-   <li>
-    <p>Otherwise, if <var>name</var> is not an <span>ASCII case-insensitive</span> match for "<code
-    data-x="">_blank</code>", there exists a <span>navigable</span> whose <span
-    data-x="nav-target">target name</span> is the same as <var>name</var>,
-    <var>currentNavigable</var>'s <span data-x="nav-bc">active browsing context</span> is
-    <span>familiar with</span> that <span>navigable</span>'s <span data-x="nav-bc">active browsing
-    context</span>, and the user agent determines that the two browsing contexts are related enough
-    that it is ok if they reach each other, set <var>chosen</var> to that navigable. If there are
-    multiple matching <span data-x="navigable">navigables</span>, the user agent should pick one in
-    some arbitrary consistent manner, such as the most recently opened, most recently focused, or
-    more closely related, and set <var>chosen</var> to it.</p>
-
-    <p class="XXX">This will be made more precise in <a
-    href="https://github.com/whatwg/html/issues/313">issue #313</a>.</p>
-   </li>
+   <li><p>Otherwise, if <var>name</var> is not an <span>ASCII case-insensitive</span> match for
+   "<code data-x="">_blank</code>", and there exists a <span>navigable</span> that is the result of
+   <span data-x="find a navigable by target name">finding a navigable by target name</span> given
+   <var>name</var> and <var>currentNavigable</var>, set <var>chosen</var> to that
+   navigable.</p></li>
 
    <li>
     <p>Otherwise, a new <span>top-level traversable</span> is being requested, and what happens
@@ -99528,6 +99688,11 @@ location.href = '#foo';</code></pre>
    <dt><dfn data-x="navigation-params-about-base-url">about base URL</dfn></dt>
    <dd>a <span>URL</span> or null used to populate the new <code>Document</code>'s <span
    data-x="concept-document-about-base-url">about base URL</span></dd>
+
+   <dt><dfn data-x="navigation-params-user-involvement">user involvement</dfn></dt>
+   <dd>a <span>user navigation involvement</span> used when <span
+   data-x="obtain-browsing-context-navigation">obtaining a browsing context</span> for the new
+   <code>Document</code></dd>
   </dl>
 
   <p class="note">Once a <span>navigation params</span> struct is created, this standard does not
@@ -99832,8 +99997,8 @@ location.href = '#foo';</code></pre>
      <li><p><span>Queue a global task</span> on the <span>navigation and traversal task
      source</span> given <var>navigable</var>'s <span data-x="nav-window">active window</span> to
      <span>navigate to a <code>javascript:</code> URL</span> given <var>navigable</var>,
-     <var>url</var>, <var>historyHandling</var>, <var>initiatorOriginSnapshot</var>, and
-     <var>cspNavigationType</var>.</p></li>
+     <var>url</var>, <var>historyHandling</var>, <var>initiatorOriginSnapshot</var>,
+     <var>userInvolvement</var>, and <var>cspNavigationType</var>.</p></li>
 
      <li><p>Return.</p></li>
     </ol>
@@ -100058,6 +100223,9 @@ location.href = '#foo';</code></pre>
          <dt><span data-x="navigation-params-about-base-url">about base URL</span></dt>
          <dd><var>documentState</var>'s <span data-x="document-state-about-base-url">about base
          URL</span></dd>
+
+         <dt><span data-x="navigation-params-user-involvement">user involvement</span></dt>
+         <dd><var>userInvolvement</var></dd>
         </dl>
        </li>
       </ol>
@@ -100067,9 +100235,9 @@ location.href = '#foo';</code></pre>
       <p><span>Attempt to populate the history entry's document</span> for <var>historyEntry</var>,
       given <var>navigable</var>, "<code
       data-x="dom-navigationtimingtype-navigate">navigate</code>", <var>sourceSnapshotParams</var>,
-      <var>targetSnapshotParams</var>, <var>navigationId</var>, <var>navigationParams</var>,
-      <var>cspNavigationType</var>, with <i data-x="attempt-to-populate-allow-post">allowPOST</i>
-      set to true and <i
+      <var>targetSnapshotParams</var>, <var>userInvolvement</var>, <var>navigationId</var>,
+      <var>navigationParams</var>, <var>cspNavigationType</var>, with <i
+      data-x="attempt-to-populate-allow-post">allowPOST</i> set to true and <i
       data-x="attempt-to-populate-completion-steps">completionSteps</i> set to the following
       step:</p>
 
@@ -100077,8 +100245,8 @@ location.href = '#foo';</code></pre>
        <li><p><span data-x="tn-append-session-history-traversal-steps">Append session history
        traversal steps</span> to <var>navigable</var>'s <span
        data-x="nav-traversable">traversable</span> to <span>finalize a cross-document
-       navigation</span> given <var>navigable</var>, <var>historyHandling</var>, and
-       <var>historyEntry</var>.</p></li>
+       navigation</span> given <var>navigable</var>, <var>historyHandling</var>,
+       <var>userInvolvement</var>, and <var>historyEntry</var>.</p></li>
       </ol>
      </li>
     </ol>
@@ -100097,8 +100265,9 @@ location.href = '#foo';</code></pre>
   <h6>The usual cross-document navigation case</h6>
 
   <p>To <dfn>finalize a cross-document navigation</dfn> given a <span>navigable</span>
-  <var>navigable</var>, <span>history handling behavior</span> <var>historyHandling</var>, and
-  <span>session history entry</span> <var>historyEntry</var>:</p>
+  <var>navigable</var>, a <span>history handling behavior</span> <var>historyHandling</var>, a
+  <span>user navigation involvement</span> <var>userInvolvement</var>, and a <span>session history
+  entry</span> <var>historyEntry</var>:</p>
 
   <ol>
    <li><p><span>Assert</span>: this is running on <var>navigable</var>'s <span
@@ -100190,7 +100359,7 @@ location.href = '#foo';</code></pre>
    </li>
 
    <li><p><span>Apply the push/replace history step</span> <var>targetStep</var> to
-   <var>traversable</var> given <var>historyHandling</var>.</p></li>
+   <var>traversable</var> given <var>historyHandling</var> and <var>userInvolvement</var>.</p></li>
   </ol>
 
 
@@ -100202,8 +100371,9 @@ location.href = '#foo';</code></pre>
 
   <p>To <dfn>navigate to a <code>javascript:</code> URL</dfn>, given a <span>navigable</span>
   <var>targetNavigable</var>, a <span>URL</span> <var>url</var>, a <span>history handling
-  behavior</span> <var>historyHandling</var>, an <span>origin</span> <var>initiatorOrigin</var>,
-  and a string <var>cspNavigationType</var>:</p>
+  behavior</span> <var>historyHandling</var>, an <span>origin</span> <var>initiatorOrigin</var>, a
+  <span>user navigation involvement</span> <var>userInvolvement</var>, and a string
+  <var>cspNavigationType</var>:</p>
 
   <ol>
    <li><p><span>Assert</span>: <var>historyHandling</var> is "<code
@@ -100229,7 +100399,7 @@ location.href = '#foo';</code></pre>
 
    <li><p>Let <var>newDocument</var> be the result of <span data-x="evaluate a javascript:
    URL">evaluating a <code>javascript:</code> URL</span> given <var>targetNavigable</var>,
-   <var>url</var>, and <var>initiatorOrigin</var>.</p></li>
+   <var>url</var>, <var>initiatorOrigin</var>, and <var>userInvolvement</var>.</p></li>
 
    <li>
     <p>If <var>newDocument</var> is null, then return.</p>
@@ -100311,12 +100481,13 @@ location.href = '#foo';</code></pre>
    <li><p><span data-x="tn-append-session-history-traversal-steps">Append session history traversal
    steps</span> to <var>targetNavigable</var>'s <span data-x="nav-traversable">traversable</span>
    to <span>finalize a cross-document navigation</span> with <var>targetNavigable</var>,
-   <var>historyHandling</var>, and <var>historyEntry</var>.</p></li>
+   <var>historyHandling</var>, <var>userInvolvement</var>, and <var>historyEntry</var>.</p></li>
   </ol>
 
   <p>To <dfn>evaluate a <code>javascript:</code> URL</dfn> given a <span>navigable</span>
-  <var>targetNavigable</var>, a <span>URL</span> <var>url</var>, and an <span>origin</span>
-  <var>newDocumentOrigin</var>:</p>
+  <var>targetNavigable</var>, a <span>URL</span> <var>url</var>, an <span>origin</span>
+  <var>newDocumentOrigin</var>, and a <span>user navigation involvement</span>
+  <var>userInvolvement</var>:</p>
 
   <ol>
    <li><p>Let <var>urlString</var> be the result of running the <span
@@ -100451,6 +100622,9 @@ location.href = '#foo';</code></pre>
      <dt><span data-x="navigation-params-about-base-url">about base URL</span></dt>
      <dd><var>targetNavigable</var>'s <span data-x="nav-document">active document</span>'s <span
      data-x="concept-document-about-base-url">about base URL</span></dd>
+
+     <dt><span data-x="navigation-params-user-involvement">user involvement</span></dt>
+     <dd><var>userInvolvement</var></dd>
     </dl>
    </li>
 
@@ -100592,8 +100766,8 @@ location.href = '#foo';</code></pre>
 
     <ol>
      <li><p><span>Finalize a same-document navigation</span> given <var>traversable</var>,
-     <var>navigable</var>, <var>historyEntry</var>, <var>entryToReplace</var>, and
-     <var>historyHandling</var>.</p></li>
+     <var>navigable</var>, <var>historyEntry</var>, <var>entryToReplace</var>,
+     <var>historyHandling</var>, and <var>userInvolvement</var>.</p></li>
 
      <li><p>Invoke <span>WebDriver BiDi fragment navigated</span> with <var>navigable</var>'s <span
      data-x="nav-bc">active browsing context</span> and a new <span>WebDriver BiDi navigation
@@ -100608,8 +100782,8 @@ location.href = '#foo';</code></pre>
   <p>To <dfn>finalize a same-document navigation</dfn> given a <span>traversable navigable</span>
   <var>traversable</var>, a <span>navigable</span> <var>targetNavigable</var>, a <span>session
   history entry</span> <var>targetEntry</var>, a <span>session history entry</span>-or-null
-  <var>entryToReplace</var>, and a <span>history handling behavior</span>
-  <var>historyHandling</var>:</p>
+  <var>entryToReplace</var>, a <span>history handling behavior</span> <var>historyHandling</var>,
+  and a <span>user navigation involvement</span> <var>userInvolvement</var>:</p>
 
   <p class="note">This is used by both <span data-x="navigate-fragid">fragment navigations</span>
   and by the <span>URL and history update steps</span>, which are the only synchronous updates to
@@ -100663,7 +100837,7 @@ location.href = '#foo';</code></pre>
 
    <li>
     <p><span>Apply the push/replace history step</span> <var>targetStep</var> to
-    <var>traversable</var> given <var>historyHandling</var>.</p>
+    <var>traversable</var> given <var>historyHandling</var> and <var>userInvolvement</var>.</p>
 
     <p class="note">This is done even for "<code
     data-x="NavigationHistoryBehavior-replace">replace</code>" navigations, as it resolves race
@@ -100716,7 +100890,13 @@ location.href = '#foo';</code></pre>
 
    <dt><dfn data-x="non-fetch-scheme-params-nav-timing-type">navigation timing type</dfn></dt>
    <dd>a <code>NavigationTimingType</code> used for <span data-x="create the navigation timing
-   entry">creating the navigation timing entry</span> for the new <code>Document</code></dd>
+   entry">creating the navigation timing entry</span> for the new <code>Document</code> (if one is
+   created)</dd>
+
+   <dt><dfn data-x="non-fetch-scheme-params-user-involvement">user involvement</dfn></dt>
+   <dd>a <span>user navigation involvement</span> used when <span
+   data-x="obtain-browsing-context-navigation">obtaining a browsing context</span> for the new
+   <code>Document</code> (if one is created)</dd>
   </dl>
 
   <p id="process-a-navigate-url-scheme">To <dfn>attempt to create a non-fetch scheme document</dfn>,
@@ -100748,13 +100928,14 @@ location.href = '#foo';</code></pre>
 
    <li>
     <p>Handle <var>url</var> by displaying some sort of inline content, e.g., an error message
-    because the specified scheme is not one of the supported protocols, or an inline prompt to
-    allow the user to select <span data-x="dom-navigator-registerProtocolHandler">a registered
+    because the specified scheme is not one of the supported protocols, or an inline prompt to allow
+    the user to select <span data-x="dom-navigator-registerProtocolHandler">a registered
     handler</span> for the given scheme. Return the result of <span
     data-x="navigate-ua-inline">displaying the inline content</span> given <var>navigable</var>,
-    <var>navigationParams</var>'s <span data-x="non-fetch-scheme-params-id">id</span>, and
+    <var>navigationParams</var>'s <span data-x="non-fetch-scheme-params-id">id</span>,
     <var>navigationParams</var>'s <span data-x="non-fetch-scheme-params-nav-timing-type">navigation
-    timing type</span>.</p>
+    timing type</span>, and <var>navigationParams</var>'s <span
+    data-x="non-fetch-scheme-params-user-involvement">user involvement</span>.</p>
 
     <p class="note">In the case of a registered handler being used, <span>navigate</span> will be
     invoked with a new URL.</p>
@@ -100875,7 +101056,7 @@ location.href = '#foo';</code></pre>
   canceled">check if unloading is canceled</dfn> for a <span>list</span> of <span
   data-x="navigable">navigables</span> <var>navigablesThatNeedBeforeUnload</var>, given an optional
   <span>traversable navigable</span> <var>traversable</var>, an optional integer
-  <var>targetStep</var>, and an optional <span>user navigation involvement</span>-or-null
+  <var>targetStep</var>, and an optional <span>user navigation involvement</span>
   <var>userInvolvementForNavigateEvent</var>, run these steps. They return "<code
   data-x="">canceled-by-beforeunload</code>", "<code data-x="">canceled-by-navigate</code>", or
   "<code data-x="">continue</code>".</p>
@@ -100924,8 +101105,6 @@ location.href = '#foo';</code></pre>
       </div>
 
       <ol>
-       <li><p><span>Assert</span>: <var>userInvolvementForNavigateEvent</var> is not null.</p></li>
-
        <li><p>Let <var>eventsFired</var> be false.</p></li>
 
        <li><p>Let <var>needsBeforeunload</var> be true if <var>navigablesThatNeedBeforeUnload</var>
@@ -101177,7 +101356,8 @@ location.href = '#foo';</code></pre>
     history traversal steps</span> to <var>traversable</var>:</p>
 
     <ol>
-     <li><p><span>Apply the reload history step</span> to <var>traversable</var>.</p></li>
+     <li><p><span>Apply the reload history step</span> to <var>traversable</var> given
+     <var>userInvolvement</var>.</p></li>
     </ol>
    </li>
   </ol>
@@ -101342,8 +101522,8 @@ location.href = '#foo';</code></pre>
 
     <ol>
      <li><p><span>Finalize a same-document navigation</span> given <var>traversable</var>,
-     <var>navigable</var>, <var>newEntry</var>, <var>entryToReplace</var>, and
-     <var>historyHandling</var>.</p></li>
+     <var>navigable</var>, <var>newEntry</var>, <var>entryToReplace</var>,
+     <var>historyHandling</var>, and "<code data-x="uni-none">none</code>".</p></li>
 
      <li><p>Invoke <span>WebDriver BiDi history updated</span> with <var>navigable</var>.</p></li>
     </ol>
@@ -101383,10 +101563,11 @@ location.href = '#foo';</code></pre>
   entry</span> <var>entry</var>, given a <span>navigable</span> <var>navigable</var>, a
   <code>NavigationTimingType</code> <var>navTimingType</var>, a <span>source snapshot params</span>
   <var>sourceSnapshotParams</var>, a <span>target snapshot params</span>
-  <var>targetSnapshotParams</var>, an optional <span>navigation ID</span>-or-null
-  <var>navigationId</var> (default null), an optional <span>navigation params</span>-or-null
-  <var>navigationParams</var> (default null), an optional string <var>cspNavigationType</var>
-  (default "<code data-x="">other</code>"), an optional boolean <dfn
+  <var>targetSnapshotParams</var>, a <span>user navigation involvement</span>
+  <var>userInvolvement</var>, an optional <span>navigation ID</span>-or-null <var>navigationId</var>
+  (default null), an optional <span>navigation params</span>-or-null <var>navigationParams</var>
+  (default null), an optional string <var>cspNavigationType</var> (default "<code
+  data-x="">other</code>"), an optional boolean <dfn
   data-x="attempt-to-populate-allow-post"><var>allowPOST</var></dfn> (default false), and optional
   algorithm steps <dfn
   data-x="attempt-to-populate-completion-steps"><var>completionSteps</var></dfn> (default an empty
@@ -101413,7 +101594,7 @@ location.href = '#foo';</code></pre>
      <li><p>If <var>documentResource</var> is a string, then set <var>navigationParams</var> to the
      result of <span data-x="create navigation params from a srcdoc resource">creating navigation
      params from a srcdoc resource</span> given <var>entry</var>, <var>navigable</var>,
-     <var>targetSnapshotParams</var>, <var>navigationId</var>, and
+     <var>targetSnapshotParams</var>, <var>userInvolvement</var>, <var>navigationId</var>, and
      <var>navTimingType</var>.</p></li>
 
      <li>
@@ -101431,7 +101612,8 @@ location.href = '#foo';</code></pre>
       <p>then set <var>navigationParams</var> to the result of <span data-x="create navigation
       params by fetching">creating navigation params by fetching</span> given <var>entry</var>,
       <var>navigable</var>, <var>sourceSnapshotParams</var>, <var>targetSnapshotParams</var>,
-      <var>cspNavigationType</var>, <var>navigationId</var>, and <var>navTimingType</var>.</p>
+      <var>cspNavigationType</var>, <var>userInvolvement</var>, <var>navigationId</var>, and
+      <var>navTimingType</var>.</p>
      </li>
 
      <li>
@@ -101464,6 +101646,9 @@ location.href = '#foo';</code></pre>
 
        <dt><span data-x="non-fetch-scheme-params-nav-timing-type">navigation timing type</span></dt>
        <dd><var>navTimingType</var></dd>
+
+       <dt><span data-x="non-fetch-scheme-params-user-involvement">user involvement</span></dt>
+       <dd><var>userInvolvement</var></dd>
       </dl>
      </li>
     </ol>
@@ -101553,8 +101738,9 @@ location.href = '#foo';</code></pre>
        <li><p>Set <var>entry</var>'s <span data-x="she-document-state">document state</span>'s
        <span data-x="document-state-document">document</span> to the result of <span
        data-x="navigate-ua-inline">creating a document for inline content that doesn't have a
-       DOM</span>, given <var>navigable</var>, null, and <var>navTimingType</var>. The inline
-       content should indicate to the user the sort of error that occurred.</p></li>
+       DOM</span>, given <var>navigable</var>, null, <var>navTimingType</var>, and
+       <var>userInvolvement</var>. The inline content should indicate to the user the sort of error
+       that occurred.</p></li>
 
        <li><p><span>Make document unsalvageable</span> given <var>entry</var>'s <span
        data-x="she-document-state">document state</span>'s <span
@@ -101709,8 +101895,9 @@ location.href = '#foo';</code></pre>
 
   <p>To <dfn>create navigation params from a srcdoc resource</dfn> given a <span>session history
   entry</span> <var>entry</var>, a <span>navigable</span> <var>navigable</var>, a <span>target
-  snapshot params</span> <var>targetSnapshotParams</var>, a <span>navigation ID</span>-or-null
-  <var>navigationId</var>, and a <code>NavigationTimingType</code> <var>navTimingType</var>:</p>
+  snapshot params</span> <var>targetSnapshotParams</var>, a <span>user navigation involvement</span>
+  <var>userInvolvement</var>, a <span>navigation ID</span>-or-null <var>navigationId</var>, and a
+  <code>NavigationTimingType</code> <var>navTimingType</var>:</p>
 
   <ol>
    <li><p>Let <var>documentResource</var> be <var>entry</var>'s <span
@@ -101812,6 +101999,9 @@ location.href = '#foo';</code></pre>
      <dt><span data-x="navigation-params-about-base-url">about base URL</span></dt>
      <dd><var>entry</var>'s <span data-x="she-document-state">document state</span>'s <span
      data-x="document-state-about-base-url">about base URL</span></dd>
+
+     <dt><span data-x="navigation-params-user-involvement">user involvement</span></dt>
+     <dd><var>userInvolvement</var></dd>
     </dl>
    </li>
   </ol>
@@ -101820,7 +102010,8 @@ location.href = '#foo';</code></pre>
   <span>session history entry</span> <var>entry</var>, a <span>navigable</span>
   <var>navigable</var>, a <span>source snapshot params</span> <var>sourceSnapshotParams</var>, a
   <span>target snapshot params</span> <var>targetSnapshotParams</var>, a string
-  <var>cspNavigationType</var>, a <span>navigation ID</span>-or-null <var>navigationId</var>, and a
+  <var>cspNavigationType</var>, a <span>user navigation involvement</span>
+  <var>userInvolvement</var>, a <span>navigation ID</span>-or-null <var>navigationId</var>, and a
   <code>NavigationTimingType</code> <var>navTimingType</var>, perform the following steps. They
   return a <span>navigation params</span>, a <span>non-fetch scheme navigation params</span>, or
   null.</p>
@@ -102350,6 +102541,9 @@ location.href = '#foo';</code></pre>
 
      <dt><span data-x="non-fetch-scheme-params-nav-timing-type">navigation timing type</span></dt>
      <dd><var>navTimingType</var></dd>
+
+     <dt><span data-x="non-fetch-scheme-params-user-involvement">user involvement</span></dt>
+     <dd><var>userInvolvement</var></dd>
     </dl>
 
     <p class="note">At this point, <var>request</var>'s <span
@@ -102450,6 +102644,9 @@ location.href = '#foo';</code></pre>
      <dt><span data-x="navigation-params-about-base-url">about base URL</span></dt>
      <dd><var>entry</var>'s <span data-x="she-document-state">document state</span>'s <span
      data-x="document-state-about-base-url">about base URL</span></dd>
+
+     <dt><span data-x="navigation-params-user-involvement">user involvement</span></dt>
+     <dd><var>userInvolvement</var></dd>
     </dl>
    </li>
   </ol>
@@ -102514,7 +102711,11 @@ location.href = '#foo';</code></pre>
      <dd>If the user agent's <span>PDF viewer supported</span> is true, return the result of <span
      data-x="navigate-ua-inline">creating a document for inline content that doesn't have a
      DOM</span> given <var>navigationParams</var>'s <span
-     data-x="navigation-params-navigable">navigable</span>.</dd>
+     data-x="navigation-params-navigable">navigable</span>, <var>navigationParams</var>'s <span
+     data-x="navigation-params-id">id</span>, <var>navigationParams</var>'s <span
+     data-x="navigation-params-nav-timing-type">navigation timing type</span>, and
+     <var>navigationParams</var>'s <span data-x="navigation-params-user-involvement">user
+     involvement</span>.</dd>
     </dl>
 
     <p>Otherwise, proceed onward.</p>
@@ -102542,8 +102743,10 @@ location.href = '#foo';</code></pre>
    data-x="navigate-ua-inline">creating a document for inline content that doesn't have a
    DOM</span> given <var>navigationParams</var>'s <span
    data-x="navigation-params-navigable">navigable</span>, <var>navigationParams</var>'s <span
-   data-x="navigation-params-id">id</span>, and <var>navigationParams</var>'s <span
-   data-x="navigation-params-nav-timing-type">navigation timing type</span>.</p></li>
+   data-x="navigation-params-id">id</span>, <var>navigationParams</var>'s <span
+   data-x="navigation-params-nav-timing-type">navigation timing type</span>, and
+   <var>navigationParams</var>'s <span data-x="navigation-params-user-involvement">user
+   involvement</span>.</p></li>
 
    <li><p>Otherwise, the document's <var>type</var> is such that the resource will not affect
    <var>navigationParams</var>'s <span data-x="navigation-params-navigable">navigable</span>, e.g.,
@@ -102610,18 +102813,19 @@ location.href = '#foo';</code></pre>
    data-x="tn-current-session-history-step">current session history step</span>.</p></li>
 
    <li><p>Return the result of <span data-x="apply the history step">applying the history
-   step</span> <var>step</var> to <var>traversable</var> given false, null, null, null, and
-   null.</p></li>
+   step</span> <var>step</var> to <var>traversable</var> given false, null, null, "<code
+   data-x="uni-none">none</code>", and null.</p></li>
   </ol>
 
   <p>To <dfn>apply the push/replace history step</dfn> given a non-negative integer <var>step</var>
-  and a <span>history handling behavior</span> <var>historyHandling</var> to a
-  <span>traversable navigable</span> <var>traversable</var>:</p>
+  to a <span>traversable navigable</span> <var>traversable</var>, given a <span>history handling
+  behavior</span> <var>historyHandling</var> and a <span>user navigation involvement</span>
+  <var>userInvolvement</var>:</p>
 
   <ol>
    <li><p>Return the result of <span data-x="apply the history step">applying the history
-   step</span> <var>step</var> to <var>traversable</var> given false, null, null, null, and
-   <var>historyHandling</var>.</p></li>
+   step</span> <var>step</var> to <var>traversable</var> given false, null, null,
+   <var>userInvolvement</var>, and <var>historyHandling</var>.</p></li>
   </ol>
 
   <p class="note"><span>Apply the push/replace history step</span> never passes <span>source
@@ -102630,15 +102834,17 @@ location.href = '#foo';</code></pre>
   data-x="navigate">navigation</span> algorithm.</p>
 
   <p>To <dfn>apply the reload history step</dfn> to a <span>traversable navigable</span>
-  <var>traversable</var>:</p>
+  <var>traversable</var> given <span>user navigation involvement</span>
+  <var>userInvolvement</var>:</p>
 
   <ol>
    <li><p>Let <var>step</var> be <var>traversable</var>'s <span
    data-x="tn-current-session-history-step">current session history step</span>.</p></li>
 
    <li><p>Return the result of <span data-x="apply the history step">applying the history
-   step</span> <var>step</var> to <var>traversable</var> given true, null, null, null,
-   and "<code data-x="dom-NavigationType-reload">reload</code>".</p></li>
+   step</span> <var>step</var> to <var>traversable</var> given true, null, null,
+   <var>userInvolvement</var>, and "<code
+   data-x="dom-NavigationType-reload">reload</code>".</p></li>
   </ol>
 
   <p class="note"><span>Apply the reload history step</span> never passes <span>source snapshot
@@ -102667,11 +102873,11 @@ location.href = '#foo';</code></pre>
   non-negative integer <var>step</var> to a <span>traversable navigable</span>
   <var>traversable</var>, with boolean <var>checkForCancelation</var>, <span>source snapshot
   params</span>-or-null <var>sourceSnapshotParams</var>, <span>navigable</span>-or-null
-  <var>initiatorToCheck</var>, <span>user navigation involvement</span>-or-null
-  <var>userInvolvementForNavigateEvents</var>, and <code>NavigationType</code>-or-null
-  <var>navigationType</var>, perform the following steps. They return "<code
-  data-x="">initiator-disallowed</code>", "<code data-x="">canceled-by-beforeunload</code>", "<code
-  data-x="">canceled-by-navigate</code>", or "<code data-x="">applied</code>".</p>
+  <var>initiatorToCheck</var>, <span>user navigation involvement</span> <var>userInvolvement</var>,
+  and <code>NavigationType</code>-or-null <var>navigationType</var>, perform the following steps.
+  They return "<code data-x="">initiator-disallowed</code>", "<code
+  data-x="">canceled-by-beforeunload</code>", "<code data-x="">canceled-by-navigate</code>", or
+  "<code data-x="">applied</code>".</p>
 
   <ol>
    <li><p><span>Assert</span>: This is running within <var>traversable</var>'s <span
@@ -102700,8 +102906,8 @@ location.href = '#foo';</code></pre>
 
    <li><p>If <var>checkForCancelation</var> is true, and the result of <span>checking if unloading
    is canceled</span> given <var>navigablesCrossingDocuments</var>, <var>traversable</var>,
-   <var>targetStep</var>, and <var>userInvolvementForNavigateEvents</var> is not "<code
-   data-x="">continue</code>", then return that result.</p></li>
+   <var>targetStep</var>, and <var>userInvolvement</var> is not "<code data-x="">continue</code>",
+   then return that result.</p></li>
 
    <li><p>Let <var>changingNavigables</var> be the result of <span>get all navigables whose current
    session history entry will change or reload</span> given <var>traversable</var> and
@@ -102850,16 +103056,12 @@ location.href = '#foo';</code></pre>
       <p>then:</p>
 
       <ol>
-       <li><p><span>Assert</span>: <var>userInvolvementForNavigateEvents</var> is not
-       null.</p></li>
-
        <li><p>Let <var>navigation</var> be <var>navigable</var>'s <span
        data-x="nav-window">active window</span>'s <span
        data-x="window-navigation-api">navigation API.</span></p></li>
 
        <li><p><span>Fire a traverse <code data-x="event-navigate">navigate</code> event</span> at
-       <var>navigation</var> given <var>targetEntry</var> and
-       <var>userInvolvementForNavigateEvents</var>.</p></li>
+       <var>navigation</var> given <var>targetEntry</var> and <var>userInvolvement</var>.</p></li>
       </ol>
      </li>
 
@@ -102905,8 +103107,9 @@ location.href = '#foo';</code></pre>
        <li><p><span>In parallel</span>, <span>attempt to populate the history entry's
        document</span> for <var>targetEntry</var>, given <var>navigable</var>,
        <var>potentiallyTargetSpecificSourceSnapshotParams</var>, <var>targetSnapshotParams</var>,
-       with <i data-x="attempt-to-populate-allow-post">allowPOST</i> set to <var>allowPOST</var>
-       and <span data-x="attempt-to-populate-completion-steps"><i>completionSteps</i></span> set to
+       <var>userInvolvement</var>, with <i data-x="attempt-to-populate-allow-post">allowPOST</i> set
+       to <var>allowPOST</var> and <span
+       data-x="attempt-to-populate-completion-steps"><i>completionSteps</i></span> set to
        <span>queue a global task</span> on the <span>navigation and traversal task source</span>
        given <var>navigable</var>'s <span data-x="nav-window">active window</span> to run
        <var>afterDocumentPopulated</var>.</p></li>
@@ -104397,18 +104600,10 @@ location.href = '#foo';</code></pre>
   data-x="dom-DOMImplementation-createHTMLDocument">document.implementation.createHTMLDocument()</code>.</p>
 
   <ol>
-   <li><p>Let <var>browsingContext</var> be <var>navigationParams</var>'s <span
-   data-x="navigation-params-navigable">navigable</span>'s <span data-x="nav-bc">active browsing
-   context</span>.</p></li>
-
    <li>
-    <p>Set <var>browsingContext</var> to the result of the <span
+    <p>Let <var>browsingContext</var> be the result of <span
     data-x="obtain-browsing-context-navigation">obtaining a browsing context to use for a
-    navigation response</span> given <var>browsingContext</var>, <var>navigationParams</var>'s
-    <span data-x="navigation-params-sandboxing">final sandboxing flag set</span>,
-    <var>navigationParams</var>'s <span data-x="navigation-params-coop">cross-origin opener
-    policy</span>, and <var>navigationParams</var>'s <span
-    data-x="navigation-params-coop-enforcement-result">COOP enforcement result</span>.</p>
+    navigation response</span> given <var>navigationParams</var>.</p>
 
     <p class="note">This can result in a <a
     href="#browsing-context-group-switches-due-to-cross-origin-opener-policy">browsing context
@@ -105043,8 +105238,8 @@ new PaymentRequest(&hellip;); // Allowed to use
 
   <p>When the user agent is to create a document to display a user agent page or PDF viewer inline,
   provided a <span>navigable</span> <var>navigable</var>, a <span>navigation ID</span>
-  <var>navigationId</var>, a <code>NavigationTimingType</code> <var>navTimingType</var>, the
-  user agent should:</p>
+  <var>navigationId</var>, a <code>NavigationTimingType</code> <var>navTimingType</var>, and a
+  <span>user navigation involvement</span> <var>userInvolvement</var>, the user agent should:</p>
 
   <ol>
    <li><p>Let <var>origin</var> be a new <span data-x="concept-origin-opaque">opaque
@@ -105113,6 +105308,9 @@ new PaymentRequest(&hellip;); // Allowed to use
 
      <dt><span data-x="navigation-params-about-base-url">about base URL</span></dt>
      <dd>null</dd>
+
+     <dt><span data-x="navigation-params-user-involvement">user involvement</span></dt>
+     <dd><var>userInvolvement</var></dd>
     </dl>
    </li>
 
@@ -145914,6 +146112,7 @@ INSERT INTERFACES HERE
   Kevin Benson,
   Kevin Cole,
   Kevin Gadd,
+  Kevin McNee,
   Kevin Venkiteswaran,
   Khushal Sagar,
   Kinuko Yasuda,