gecko-dev/testing/web-platform/tests/navigation-api/precommit-handler/precommitHandler-uncancelable.html
Nate Chapin 783ad5affe Bug 1956929 [wpt PR 51661] - Update navigation API deferred commit prototype to use new precommitHandler mechanism, a=testonly
Automatic update from web-platform-tests
Update navigation API deferred commit prototype to use new precommitHandler mechanism

Explainer updates:
https://github.com/WICG/navigation-api/pull/281
https://github.com/WICG/navigation-api/pull/282

Change-Id: I210f47c1dba5064e069e5df059d706cb9d8ecb21
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/6382278
Commit-Queue: Nate Chapin <japhet@chromium.org>
Reviewed-by: Domenic Denicola <domenic@chromium.org>
Reviewed-by: Noam Rosenthal <nrosenthal@chromium.org>
Reviewed-by: Alex Moshchuk <alexmos@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1438913}

--

wpt-commits: bbc20dc7df7a051b0f5e710671dbc7c71d378d61
wpt-pr: 51661
2025-03-29 10:15:47 +00:00

24 lines
992 B
HTML

<!doctype html>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<iframe id="i" src="/common/blank.html"></iframe>
<body>
<script>
promise_test(async t => {
// Wait for after the load event so that the navigation doesn't get converted
// into a replace navigation.
await new Promise(resolve => window.onload = () => t.step_timeout(resolve, 0));
await i.contentWindow.navigation.navigate("#1").finished;
i.contentWindow.navigation.onnavigate = t.step_func(e => {
assert_false(e.cancelable);
// intercept() with a precommitHandler is forbidden because e.cancelable is false.
let iframe_constructor = i.contentWindow.DOMException;
assert_throws_dom("InvalidStateError", iframe_constructor,
() => e.intercept({ precommitHandler: async () => {} }));
});
await i.contentWindow.navigation.back().finished;
}, "precommitHandler for an uncancelable traverse navigation");
</script>
</body>