<body>
<p>This test passes if the module script loads correctly.</p>
<pre></pre>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function done(msg) {
    document.querySelector("pre").innerHTML = msg;
    if (window.testRunner)
        testRunner.notifyDone();
}

var script = document.createElement("script");
script.type = "module";
script.crossOrigin = "use-credentials";
script.src = "http://localhost:8000/security/resources/cors-script.php?credentials=true";
script.onload = function() { done("PASS"); }
script.onerror = function() { done("FAIL");}
document.body.appendChild(script);
</script>
