signal-abort-window-stop.html (893B)
1 <!doctype html> 2 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharnessreport.js"></script> 4 <script> 5 async_test(t => { 6 window.onload = t.step_func(() => { 7 let abort_signal; 8 let onabort_called = false; 9 navigation.onnavigatesuccess = t.unreached_func("onnavigatesuccess"); 10 navigation.onnavigate = t.step_func(e => { 11 abort_signal = e.signal; 12 abort_signal.onabort = () => onabort_called = true; 13 }); 14 let committed_promise = navigation.navigate("?1").committed; 15 window.stop(); 16 assert_true(abort_signal.aborted); 17 assert_true(onabort_called); 18 promise_rejects_dom(t, "AbortError", committed_promise); 19 // Complete the test asynchronously to ensure that onnavigatesuccess 20 // didn't fire on a microtask. 21 t.step_timeout(t.step_func_done(() => {}), 0); 22 }); 23 }, "window.stop() signals event.signal"); 24 </script>