Source code

Revision control

Copy as Markdown

Other Tools

<!DOCTYPE html>
<meta charset=utf-8>
<title>Early Hints preload with a mismatching integrity attribute</title>
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="early-hints-helpers.sub.js"></script>
<body>
<script>
const preloads = getPreloadsFromSearchParams();
promise_test(() => {
return new Promise((resolve, reject) => {
assert_greater_than(preloads.length, 0);
const preload = preloads[0];
const el = document.createElement("script");
el.src = preload.url;
el.integrity = preload.integrity_attr;
el.onload =
() => reject(new Error("Script unexpectedly loaded despite an " +
"integrity mismatch"));
el.onerror = () => {
// The integrity mismatch must block the script from executing even
// though it was preloaded via Early Hints.
resolve();
};
document.body.appendChild(el);
});
}, "A preload whose integrity does not match the response is still parsed " +
"from the Early Hints Link header but fails the subresource integrity check");
</script>
</body>