blob: b6e9a2c79335b9c6dd900ead02e1cd73c67c6e69 [file] [log] [blame]
<!DOCTYPE HTML>
<html>
<head>
<script src="../resources/testharness.js"></script>
<script src="../resources/testharnessreport.js"></script>
</head>
<body>
<script>
var t = async_test("Test that a preload with a crossorigin attribute does not load a cross-origin resource that isn't CORS enabled.");
var anonymousMarkupError = false;
var credentialsMarkupError = false;
var anonymousDynamicError = false;
var credentialsDynamicError = false;
</script>
<link crossorigin="anonymous" rel="preload" href="http://localhost:8000/security/resources/abe.png?1" onerror="anonymousMarkupError = true;">
<link crossorigin="use-credentials" rel="preload" href="http://localhost:8000/security/resources/abe.png?2" onerror="credentialsMarkupError = true;">
<script>
// Test that dynamically inserted <link> elements are handled the same way.
var link = document.createElement("link");
link.crossOrigin = "anonymous";
link.rel = "preload";
link.addEventListener("error", function() { anonymousDynamicError = true; });
link.href = "http://localhost:8000/security/resources/abe.png?3";
document.body.appendChild(link);
link = document.createElement("link");
link.crossOrigin = "use-credentials";
link.rel = "preload";
link.addEventListener("error", function() { credentialsDynamicError = true; });
link.href = "http://localhost:8000/security/resources/abe.png?4";
document.body.appendChild(link);
</script>
<script src="../resources/slow-script.pl?delay=500"></script>
<script>
window.onload = t.step(function(){
assert_true(anonymousMarkupError, "anonymous markup resource triggered error event");
assert_true(credentialsMarkupError, "use-credentials markup resource triggered error event");
assert_true(anonymousDynamicError, "anonymous dynamic resource triggered error event");
assert_true(credentialsDynamicError, "use-credentials dynamic resource triggered error event");
t.done();
});
</script>
</body>
</html>