blob: eedf0b44ada494a789521d2b25bd8d0989a86444 [file] [log] [blame]
<html>
<head>
<script src="/js-test-resources/js-test.js"></script>
<script src="http://127.0.0.1:8000/resources/slow-script.pl?delay=100"></script>
<script src="resources/picture-preload-helper.js"></script>
</head>
<body>
<script>
if (window.testRunner)
testRunner.dumpAsText();
shouldBeTrue("internals.isPreloaded('resources/preload-test.jpg?0');");
shouldBeTrue("internals.isPreloaded('resources/image2.png');");
loadFromImg(2);
loadFromSource(3);
loadFromSource(4);
loadFromSource(5);
loadFromImg(6);
loadFromImg(7);
</script>
<!-- Control group -->
<img src="resources/preload-test.jpg?0">
<picture>
<source srcset="resources/image2.png">
<img></picture>
<!-- Invalid nesting tests -->
<!-- In the following tests, nesting messes up the selection algorithm -->
<picture>
<picture>
<source sizes="400px" srcset="resources/base-image1.png?1 200w, resources/base-image3.png?1 400w, resources/base-image2.png?1 800w">
<div>
</picture>
</div>
<img src="resources/preload-test.jpg?1">
</picture>
</picture>
<picture>
<div>
</picture>
</picture>
</picture>
</div>
<source sizes="400px" srcset="resources/base-image1.png?2 200w, resources/base-image3.png?2 400w, resources/base-image2.png?2 800w">
<img src="resources/preload-test.jpg?2">
</picture>
<!-- Here we preload the correct resource, since document.write is not modifying the DOM -->
<picture>
<script>document.write("bla");</script>
<source sizes="400px" srcset="resources/base-image1.png?3 200w, resources/base-image3.png?3 400w, resources/base-image2.png?3 800w">
<img src="resources/preload-test.jpg?3">
</picture>
<!-- In the following tests, nesting messes up the selection algorithm, but we don't get it -->
<picture>
<div>
<picture>
<div>
<source sizes="400px" srcset="resources/base-image1.png?4 200w, resources/base-image3.png?4 400w, resources/base-image2.png?4 800w">
</div>
<img src="resources/preload-test.jpg?4">
</picture>
</div>
</picture>
<picture>
<div>
<picture>
<div>
<source sizes="400px" srcset="resources/base-image1.png?5 200w, resources/base-image3.png?5 400w, resources/base-image2.png?5 800w">
<img src="resources/preload-test.jpg?5">
</div>
</picture>
</div>
</picture>
<!-- We don't keep a checkpoint of the picture stack, so document.write inside picture
*that modifies the DOM* will result in a false prediction -->
<!-- In the following tests, we preload the wrong resource, because document.write is modifying the DOM -->
<script>document.write('<picture>');</script>
<source sizes="400px" srcset="resources/base-image1.png?6 200w, resources/base-image3.png?6 400w, resources/base-image2.png?6 800w">
<img src="resources/preload-test.jpg?6">
</picture>
<picture>
<script>document.write('<source sizes="400px" srcset="resources/base-image1.png?7 200w, resources/base-image3.png?7 400w, resources/base-image2.png?7 800w">');</script>
<img src="resources/preload-test.jpg?7">
</picture>
</body>
</html>