LibWeb: Process all pending lazy loading intersection observations

This fixes an issue where images outside the viewport could prevent
loading of images inside the viewport, depending on DOM order.
This commit is contained in:
Andreas Kling 2023-12-24 12:32:25 +01:00
commit fe04d83ef5
Notes: sideshowbarker 2024-07-16 21:30:46 +09:00
3 changed files with 26 additions and 2 deletions

View file

@ -0,0 +1,19 @@
<!doctype html><style>
img {
border: 1px solid black;
width: 30px;
height: 30px;
}
/* This element will not be visible in the viewport */
#notInViewport {
position: relative;
top: -1000px;
}
</style><body><img id="notInViewport" loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAUElEQVRo3u3PQQ0AMAgEsGP+xeEIVOxB0jpodSaXvRwnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg8N8ChgACTxD8p8QAAAAASUVORK5CYII="><img id="inViewport" loading="lazy" src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAUElEQVRo3u3PQQ0AMAgEsGP+xeEIVOxB0jpodSaXvRwnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg8N8ChgACTxD8p8QAAAAASUVORK5CYII=">
<script>
const inViewport = document.getElementById("inViewport");
inViewport.addEventListener("load", function() {
document.body.innerHTML = "PASS";
internals.signalTextTestIsDone();
});
</script>