<!DOCTYPE html>
<html>
<head>
<script>
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
}
</script>
</head>
<body>
<script>
try {
    var worker = new Worker('http://127.0.0.1:8000/security/contentSecurityPolicy/resources/worker.py?type=importscripts&csp=' +
                            encodeURIComponent("script-src 'strict-dynamic'; script-src-elem localhost:8000"));
    worker.onmessage = function (event) {
        alert(event.data);
        if (window.testRunner)
            testRunner.notifyDone();
    };
} catch (e) {
    alert(e);
    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
</body>
</html>
