iframe-loading-lazy-nav-navigation-navigate.html (995B)
1 <!DOCTYPE html> 2 <title>Navigating iframe loading='lazy' before it is loaded: navigation.navigate</title> 3 <iframe data-src="support/blank.htm?nav" src="support/blank.htm?src" loading="lazy" hidden></iframe> 4 <script> 5 const iframe = document.querySelector('iframe'); 6 const iframeLoaded = new Promise(resolve => { 7 iframe.onload = resolve; 8 }); 9 iframe.contentWindow.navigation.navigate(iframe.dataset.src); 10 iframe.hidden = false; 11 </script> 12 <!-- Loading testharness.js here is intentional to reproduce a bug in WebKit. --> 13 <script src="/resources/testharness.js"></script> 14 <script src="/resources/testharnessreport.js"></script> 15 <script> 16 setup({single_test: true}); 17 assert_true("navigation" in window, "Navigation API is supported"); 18 iframeLoaded.then(() => { 19 // Need a timeout to detect failure when there are two navigations. 20 step_timeout(() => { 21 assert_equals(iframe.contentWindow.location.href, new URL("support/blank.htm?nav", location.href).href); 22 done(); 23 }, 1000); 24 }); 25 </script>