| <!DOCTYPE html> |
| <head> |
| <title>A loading='lazy' image starts loading when the element is moved into |
| an iframe where script is disabled</title> |
| <link rel="help" href="https://github.com/scott-little/lazyload"> |
| <script src="/resources/testharness.js"></script> |
| <script src="/resources/testharnessreport.js"></script> |
| </head> |
| |
| <div style="height:1000vh;"></div> |
| <iframe id="iframe" src="resources/image-loading-lazy-in-viewport.html"> |
| </iframe> |
| <iframe id="sandboxediframe" sandbox="allow-same-origin" |
| src="resources/subframe.html"> |
| </iframe> |
| <script> |
| promise_test(async t => { |
| const p1 = new Promise(resolve => iframe.addEventListener("load", resolve)); |
| const p2 = new Promise(resolve => sandboxediframe.addEventListener("load", resolve)); |
| |
| await Promise.all([p1, p2]); |
| |
| const image = iframe.contentDocument.querySelector("img"); |
| |
| assert_false(image.complete, "lazy-load image shouldn't be loaded"); |
| |
| sandboxediframe.contentDocument.body.appendChild(image); |
| await new Promise(resolve => image.addEventListener("load", resolve)); |
| |
| assert_true(image.complete, |
| "lazy-load image shouldn't be honored in script disabled iframe"); |
| }); |
| </script> |