blob: d9cd919b90c2a51c568b13a64936b24dddaa3d4b [file] [log] [blame]
<!DOCTYPE html>
<html>
<body>
<script>
if (window.testRunner) {
testRunner.dumpAsText();
testRunner.waitUntilDone();
}
function errorPreload(e)
{
console.log("unexpected loading result for preload " + e);
}
</script>
<link rel=preload onerror="errorPreload(1)" as=style href="http://localhost:8000/security/resources/allow-if-origin.py?delay=1000&allowCache&origin=http%3A%2F%2Flocalhost%3A8080&name=xorigincss1.css&contentType=text/css&allowCredentials">
<link rel=preload onerror="errorPreload(2)" as=style href="http://localhost:8080/security/resources/allow-if-origin.py?delay=1000&allowCache&origin=http%3A%2F%2F127.0.0.1%3A8000&name=xorigincss1.css&contentType=text/css&allowCredentials">
<link rel=preload onerror="errorPreload(3)" as=style crossorigin="with-credentials" href="http://localhost:8000/security/resources/allow-if-origin.py?delay=1000&allowCache&origin=http%3A%2F%2F127.0.0.1%3A8000&name=xorigincss2.css&contentType=text/css&allowCredentials">
<link rel=preload onload="errorPreload(4)" as=style crossorigin="with-credentials" href="http://localhost:8080/security/resources/allow-if-origin.py?delay=1000&allowCache&origin=http%3A%2F%2Flocalhost%3A8080&name=xorigincss2.css&contentType=text/css&allowCredentials">
<div id="log"></div>
<script>
var maxResults = 5;
var results = [];
function checkDone()
{
if (results.length !== maxResults)
return;
var log = "";
results.sort();
for (value of results)
log += "<br>" + value;
document.getElementById('log').innerHTML = log + "<br>DONE";
if (window.testRunner)
setTimeout(() => { testRunner.notifyDone(); }, 1000);
}
function logOnLoad(url, isCORS, expectSuccess)
{
results.push((expectSuccess ? "PASS: " : "FAIL: ") + "loaded successfuly " + url + (isCORS ? " (cors mode)" : " (no-cors mode)"));
checkDone();
}
function logOnError(url, isCORS, expectSuccess)
{
results.push((!expectSuccess ? "PASS: " : "FAIL: ") + "did not load " + url + (isCORS ? " (cors mode)" : " (no-cors mode)"));
checkDone();
}
function createLinkElement(url, isCORS, expectSuccess)
{
link = document.createElement('link');
link.href = url;
link.rel = "stylesheet";
link.type = "text/css";
if (isCORS)
link.crossOrigin = "with-credentials";
link.onload = () => { logOnLoad(url, isCORS, expectSuccess); };
link.onerror = () => { logOnError(url, isCORS, expectSuccess); };
return link;
}
// Preload 1 (no-cors) with link element (cors): should fail
document.body.appendChild(createLinkElement("http://localhost:8000/security/resources/allow-if-origin.py?delay=1000&allowCache&origin=http%3A%2F%2Flocalhost%3A8080&name=xorigincss1.css&contentType=text/css&allowCredentials", true, false));
// Preload 1 (no-cors) with link element (no-cors): should succeed
document.body.appendChild(createLinkElement("http://localhost:8000/security/resources/allow-if-origin.py?delay=1000&allowCache&origin=http%3A%2F%2Flocalhost%3A8080&name=xorigincss1.css&contentType=text/css&allowCredentials", false, true));
// Preload 2 (no-cors) with link element (cors): should succeed since 127.0.0.1:8000 allowed
document.body.appendChild(createLinkElement("http://localhost:8080/security/resources/allow-if-origin.py?delay=1000&allowCache&origin=http%3A%2F%2F127.0.0.1%3A8000&name=xorigincss1.css&contentType=text/css&allowCredentials", true, true));
// Preload 3 (cors) with link element (cors): should succeed
document.body.appendChild(createLinkElement("http://localhost:8000/security/resources/allow-if-origin.py?delay=1000&allowCache&origin=http%3A%2F%2F127.0.0.1%3A8000&name=xorigincss2.css&contentType=text/css&allowCredentials", true, true));
// Preload 4 (cors, preload should fail) with link element (no-cors): should succeed
document.body.appendChild(createLinkElement("http://localhost:8080/security/resources/allow-if-origin.py?delay=1000&allowCache&origin=http%3A%2F%2Flocalhost%3A8080&name=xorigincss2.css&contentType=text/css&allowCredentials", false, true));
</script>
</body>
</html>