blob: a66a78219890541e64afdad4730e5aef7e08a243 [file] [edit]
<!DOCTYPE html>
<html>
<head>
<title>Mixed-Content: imageset tests</title>
<meta charset='utf-8'>
<meta name="description" content="Test behavior of imageset resources, making sure that resources are not downloaded.">
<link rel="author" title="Yoav Weiss" href="yoav@yoav.ws">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/preload/resources/preload_helper.js"></script>
<script>
var t = async_test('Makes sure imageset blockable resources are not downloaded');
</script>
</head>
<body>
<!-- Plain <img src="http://..."> is optionally-blockable mixed content and
is auto-upgraded to https:// (but the port is preserved, so it will fail)
Use the HTTPS port instead so the upgraded load succeeds. -->
<img src="http://{{domains[]}}:{{ports[https][0]}}/images/smiley.png?img_src">
<picture>
<source srcset="http://{{domains[]}}:{{ports[https][0]}}/images/smiley.png?picture">
<img>
</picture>
<img srcset="http://{{domains[]}}:{{ports[https][0]}}/images/smiley.png?img_srcset">
<script>
function verifyNotDownloaded(url) {
for (const entry of performance.getEntriesByName(getAbsoluteURL(url))) {
assert_equals(entry.transferSize, 0, url + " should not be downloaded");
}
}
window.addEventListener("load", t.step_func(function() {
verifyLoadedAndNoDoubleDownload("https://{{domains[]}}:{{ports[https][0]}}/images/smiley.png?img_src");
verifyNotDownloaded("http://{{domains[]}}:{{ports[https][0]}}/images/smiley.png?picture");
verifyNumberOfResourceTimingEntries("https://{{domains[]}}:{{ports[https][0]}}/images/smiley.png?picture", 0);
verifyNotDownloaded("http://{{domains[]}}:{{ports[https][0]}}/images/smiley.png?img_srcset");
verifyNumberOfResourceTimingEntries("https://{{domains[]}}:{{ports[https][0]}}/images/smiley.png?img_srcset", 0);
t.done();
}));
</script>
</body>
</html>