37 lines
1.5 KiB
HTML
37 lines
1.5 KiB
HTML
<!DOCTYPE html>
|
|
<meta charset=utf-8>
|
|
<script src="/resources/testharness.js"></script>
|
|
<script src="/resources/testharnessreport.js"></script>
|
|
<script src="early-hints-helpers.sub.js"></script>
|
|
<body>
|
|
<script>
|
|
const SEARCH_PARAMS = new URLSearchParams(window.location.search);
|
|
const EARLY_HINTS_POLICY = SEARCH_PARAMS.get("early-hints-policy");
|
|
const FINAL_POLICY = SEARCH_PARAMS.get("final-policy");
|
|
|
|
function isResourceAllowed() {
|
|
return FINAL_POLICY === "absent" || FINAL_POLICY === "allowed";
|
|
}
|
|
|
|
function shouldEarlyHintsPreloadResource() {
|
|
return EARLY_HINTS_POLICY === "absent" || EARLY_HINTS_POLICY == "allowed";
|
|
}
|
|
|
|
promise_test(async (t) => {
|
|
const resource_url = SEARCH_PARAMS.get("resource-url");
|
|
if (isResourceAllowed()) {
|
|
await fetchScript(resource_url);
|
|
const early_hints_preloaded = isPreloadedByEarlyHints(resource_url);
|
|
const should_early_hints_preload = shouldEarlyHintsPreloadResource();
|
|
const description = "Early Hints " +
|
|
(early_hints_preloaded ? "preloaded" : "didn't preload") +
|
|
" the resource, should " +
|
|
(should_early_hints_preload ? "" : "not ") + "preload.";
|
|
assert_equals(early_hints_preloaded, should_early_hints_preload,
|
|
description);
|
|
} else {
|
|
await promise_rejects_js(t, Error, fetchScript(resource_url));
|
|
}
|
|
}, `Early Hints CSP: Early Hints policy = ${EARLY_HINTS_POLICY}, final response policy = ${FINAL_POLICY}.`);
|
|
</script>
|
|
</body>
|