<!DOCTYPE html>
<html>

<head>
    <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.-->
    <meta http-equiv="Content-Security-Policy" content="connect-src 'self'; script-src 'self' 'unsafe-inline';">
    <title>connect-src-beacon-blocked</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src='../support/logTest.sub.js?logs=["Pass", "violated-directive=connect-src"]'></script>
    <script src="../support/alertAssert.sub.js?alerts=[]"></script>
    <!-- enforcing policy:
connect-src 'self' http://{{host}}:{{ports[http][0]}}; script-src 'self' 'unsafe-inline';
-->
</head>

<body>
    <script>
        window.addEventListener('securitypolicyviolation', function(e) {
            log("violated-directive=" + e.violatedDirective);
        });

        if (typeof navigator.sendBeacon != 'function') {
            t_log.set_status(t_log.NOTRUN, "No navigator.sendBeacon, cannot run test.");
            t_log.phase = t_log.phases.HAS_RESULT;
            t_log.done();
        } else {
            try {
                var es = navigator.sendBeacon("http://www1.{{host}}:{{ports[http][0]}}/security/contentSecurityPolicy/echo-report.php");
                log("Pass");
            } catch (e) {
                log("Fail");
            }
        }
    </script>
    <div id="log"></div>
</body>

</html>
