<body>
<p>Trying to load data URLs scripts. If being loaded, the scripts should throw error messages.</p>
<pre></pre>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

function done() {
    log("DONE");
    if (window.testRunner)
        testRunner.notifyDone();
}

function log(msg) {
    document.querySelector("pre").innerHTML += msg + "<br>";
}

window.onerror = function(message, source, lineno, colno, error)
{
    log("Received error '" + message + "' from '" + source + "', location " + lineno + ":" + colno + ".");
}

function test1()
{
    var script = document.createElement("script");
    script.src = "data:text/script, throw 'PASS: my data URL in no-cors mode is throwing rich messages';";
    script.onload = () => { log("PASS: loaded script in no-cors mode"); test2(); }
    script.onerror = () => { log("FAIL: did not load script in no-cors mode"); test2(); }
    document.body.appendChild(script);
}

function test2()
{
    var script = document.createElement("script");
    script.crossOrigin = "";
    script.src = "data:text/script, throw 'PASS: my error is rich';";
    script.onload = () => { log("PASS: loaded script in cors mode"); done(); }
    script.onerror = () => { log("FAIL: did not load script in cors mode"); done(); }
    document.body.appendChild(script);
}

test1();

</script>
</body>
