| <!doctype html> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| <iframe id="iframe" name="i" src="/common/blank.html"></iframe> |
| |
| <script> |
| async_test(t => { |
| window.onload = t.step_func(() => { |
| navigation.onnavigate = t.unreached_func("onnavigate should not have fired in source window"); |
| |
| iframe.contentWindow.navigation.onnavigate = t.step_func(e => { |
| assert_equals(e.navigationType, "push"); |
| assert_true(e.cancelable, "cancelable"); |
| assert_false(e.canIntercept, "canIntercept"); |
| assert_false(e.userInitiated, "userInitiated"); |
| assert_false(e.hashChange, "hashChange"); |
| assert_equals(e.downloadRequest, null); |
| assert_equals(e.destination.url, "about:srcdoc"); |
| assert_false(e.destination.sameDocument); |
| assert_equals(e.destination.key, ""); |
| assert_equals(e.destination.id, ""); |
| assert_equals(e.destination.index, -1); |
| assert_equals(e.formData, null); |
| assert_equals(e.sourceElement, null); |
| e.preventDefault(); |
| |
| // Make sure it doesn't navigate anyway. |
| iframe.onload = t.unreached_func("Must not load the srcdoc document"); |
| t.step_timeout(() => t.done(), 10); |
| }); |
| |
| iframe.srcdoc = "srcdoc contents"; |
| }); |
| }, "navigate event fires appropriately (and can be canceled) for adding the srcdoc attribute"); |
| </script> |