pageswap-iframe.html (1542B)
1 <!DOCTYPE HTML> 2 <title>Tests pageswap dispatch on iframe Documents</title> 3 <link rel="author" title="Khushal Sagar" href="mailto:khushalsagar@chromium.org"> 4 <link rel="help" href="https://html.spec.whatwg.org/"> 5 <script src="/resources/testharness.js"></script> 6 <script src="/resources/testharnessreport.js"></script> 7 <script src="/resources/testdriver.js"></script> 8 <script src="/resources/testdriver-vendor.js"></script> 9 <script> 10 setup({explicit_done: true}); 11 12 function runTest(frame) { 13 let frameWindow = frame.contentWindow; 14 15 let pageswapfired = false; 16 let expectedUrl = frameWindow.location.href + '?new'; 17 frameWindow.onpageswap = (e) => { 18 assert_equals(e.activation.entry.url, expectedUrl, 'activation url incorrect in pageswap'); 19 assert_equals(e.activation.navigationType, "push", 'navigation type incorrect in pageswap'); 20 assert_equals(e.activation.from, frameWindow.navigation.currentEntry, 'from entry incorrect in pageswap'); 21 assert_false(e.activation.entry.sameDocument, 'new entry must be cross-document'); 22 pageswapfired = true; 23 } 24 25 frameWindow.onpagehide = (e) => { 26 assert_true(pageswapfired, 'pageswap not fired'); 27 done(); 28 } 29 30 frame.src = expectedUrl; 31 } 32 33 promise_test(async t => { 34 onload = () => { 35 let frame = document.createElement('iframe'); 36 frame.src = "/resources/blank.html"; 37 frame.onload = () => { 38 frame.contentWindow.requestAnimationFrame(() => { 39 runTest(frame); 40 }); 41 } 42 document.body.appendChild(frame); 43 }; 44 }); 45 </script>