signal-abort-detach-in-onnavigate.html (849B)
1 <!doctype html> 2 <script src="/resources/testharness.js"></script> 3 <script src="/resources/testharnessreport.js"></script> 4 <iframe id="i" src="/common/blank.html"></iframe> 5 <script> 6 promise_test(async t => { 7 await new Promise(resolve => i.onload = resolve); 8 let iframe_constructor = i.contentWindow.DOMException; 9 let iframe_typeerror = i.contentWindow.TypeError; 10 let abort_signal; 11 let onabort_called = false; 12 i.contentWindow.navigation.onnavigate = t.step_func(e => { 13 abort_signal = e.signal; 14 abort_signal.onabort = () => onabort_called = true; 15 i.remove(); 16 }); 17 await promise_rejects_dom(t, 'AbortError', iframe_constructor, i.contentWindow.navigation.navigate("#1").committed); 18 assert_true(abort_signal.aborted); 19 assert_true(onabort_called); 20 }, "window detach inside a navigate event signals event.signal"); 21 </script>