LibWeb: Use reject_the_finished_promise() in abort_a_navigate_event()

This aligns our implementation with the specification. Doing this
fixes a number of WPT tests because this sets
`m_ongoing_api_method_tracker` to null, avoiding an assertion that
previously caused a crash.
This commit is contained in:
Tim Ledbetter
2026-02-10 20:04:10 +00:00
committed by Shannon Booth
parent 206a18acd4
commit dc649a7e46
Notes: github-actions[bot] 2026-02-14 19:23:21 +00:00
21 changed files with 413 additions and 2 deletions

View File

@@ -0,0 +1,23 @@
<!doctype html>
<script src="../../resources/testharness.js"></script>
<script src="../../resources/testharnessreport.js"></script>
<div id="d"></div>
<script>
promise_test(async () => {
let onnavigate_called = false;
navigation.onnavigate = () => onnavigate_called = true;
await navigation.navigate("#d").committed;
assert_equals(location.hash, "#d");
assert_true(onnavigate_called);
assert_equals(document.querySelector(":target"), d);
}, "navigate() navigates same-document and fires onnavigate (async)");
test(() => {
let onnavigate_called = false;
navigation.onnavigate = () => onnavigate_called = true;
navigation.navigate("#d");
assert_equals(location.hash, "#d");
assert_true(onnavigate_called);
assert_equals(document.querySelector(":target"), d);
}, "navigate() navigates same-document and fires onnavigate (sync)");
</script>