<!DOCTYPE html>
<html>

<head>
    <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.-->
    <meta http-equiv="Content-Security-Policy" content="connect-src *; script-src 'self' 'unsafe-inline';">
    <title>worker-connect-src-blocked</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src='../support/logTest.sub.js?logs=["xhr blocked","TEST COMPLETE"]'></script>
    <script src='../support/alertAssert.sub.js?alerts=[]'></script>
</head>
<p>This test loads a worker, which is delivered with its own
    policy.  The worker should be blocked from making an XHR
    as that policy specifies a connect-src 'none', though
    this resource's policy is connect-src *.  No report
    should be sent since the worker's policy doesn't specify
    a report-uri.</p>
<body>
    <script>
        window.addEventListener('securitypolicyviolation', function(e) {
            log('Fail');
        });
    
        try {
            var worker = new Worker('/content-security-policy/connect-src/support/worker-make-xhr-blocked.sub.js');
            worker.onmessage = function(event) {
                log(event.data);
            };
        } catch (e) {
            log(e);
        }

    </script>
    <div id="log"></div>
</body>

</html>
