<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Security-Policy" content="connect-src http://127.0.0.1:8000"/>
<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.php?type=make-xhr&csp=' +
                             encodeURIComponent("connect-src http://127.0.0.1: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>
