Skip to content

Commit 80fa5b5

Browse files
authored
Expose NavigationPrecommitController.addHandler
This allows adding a regular navigation handler during a precommit. Fixes #11956.
1 parent ce687e1 commit 80fa5b5

File tree

1 file changed

+35
-1
lines changed

1 file changed

+35
-1
lines changed

source

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -101124,6 +101124,7 @@ callback <dfn callback>NavigationInterceptHandler</dfn> = <span data-x="idl-Prom
101124101124
<pre><code class="idl">[Exposed=Window]
101125101125
interface <dfn interface>NavigationPrecommitController</dfn> {
101126101126
undefined <span data-x="dom-NavigationPrecommitController-redirect">redirect</span>(USVString url, optional <span>NavigationNavigateOptions</span> options = {});
101127+
undefined <span data-x="dom-NavigationPrecommitController-addHandler">addHandler</span>(<span>NavigationInterceptHandler</span> handler);
101127101128
};
101128101129

101129101130
callback <dfn callback>NavigationPrecommitHandler</dfn> = <span data-x="idl-Promise">Promise</span>&lt;undefined> (<span>NavigationPrecommitController</span> controller);</code></pre>
@@ -101152,7 +101153,13 @@ callback <dfn callback>NavigationInterceptHandler</dfn> = <span data-x="idl-Prom
101152101153
<p>If the current <code>Document</code> <span data-x="can have its URL rewritten">cannot have
101153101154
its URL rewritten</span> to <var>url</var>, a <span>"<code>SecurityError</code>"</span>
101154101155
<code>DOMException</code> will be thrown.</p>
101155-
</dd>
101156+
</dd>
101157+
101158+
<dt><code data-x=""><var>precommitController</var>.<span subdfn data-x="dom-NavigationPrecommitController-addHandler">addHandler</span>(<span>NavigationInterceptHandler</span> <var>handler</var>)</code></dt>
101159+
<dd><p>Adds a <span>NavigationInterceptHandler</span> callback that would be called once the navigation is committed,
101160+
as if this method was passed to the <code
101161+
data-x="dom-NavigateEvent-intercept">navigateEvent.intercept()</code> method as a <code
101162+
data-x="dom-NavigationInterceptOptions-handler">handler</code>.</p></dd>
101156101163
</dl>
101157101164

101158101165
<div w-nodev>
@@ -101246,6 +101253,33 @@ callback <dfn callback>NavigationInterceptHandler</dfn> = <span data-x="idl-Prom
101246101253
</ol>
101247101254
</div>
101248101255

101256+
<div algorithm>
101257+
<p>The <dfn method for="NavigationPrecommitController"><code
101258+
data-x="dom-NavigationPrecommitController-addHandler">addHandler(<var>handler</var>,)</code></dfn>
101259+
method steps are:</p>
101260+
101261+
<ol>
101262+
<li><p><span>Assert</span>: <span>this</span>'s <span
101263+
data-x="concept-NavigationPrecommitController-event">event</span>'s <span
101264+
data-x="concept-NavigateEvent-interception-state">interception state</span> is not "<code
101265+
data-x="">none</code>".</p></li>
101266+
101267+
<li><p><span data-x="NavigateEvent-perform-shared-checks">Perform shared checks</span> given
101268+
<span>this</span>'s <span
101269+
data-x="concept-NavigationPrecommitController-event">event</span>.</p></li>
101270+
101271+
<li><p>If <span>this</span>'s <span
101272+
data-x="concept-NavigationPrecommitController-event">event</span>'s <span
101273+
data-x="concept-NavigateEvent-interception-state">interception state</span> is not "<code
101274+
data-x="">intercepted</code>", then throw an <span>"<code>InvalidStateError</code>"</span>
101275+
<code>DOMException</code>.</p></li>
101276+
101277+
<li><p><span data-x="list append">Append</span> <var>handler</var> to <span>this</span>'s <span
101278+
data-x="concept-NavigationPrecommitController-event">event</span>'s <span
101279+
data-x="concept-NavigateEvent-navigation-handler-list">navigation handler list</span>.</p></li>
101280+
</ol>
101281+
</div>
101282+
101249101283

101250101284
</div>
101251101285

0 commit comments

Comments
 (0)