<!DOCTYPE html>
<html>

<head>
    <!-- Programmatically converted from a WebKit Reftest, please forgive resulting idiosyncracies.-->
    <meta http-equiv="Content-Security-Policy" content="form-action 'self'; script-src 'self' 'unsafe-inline'; connect-src 'self';">
    <title>form-action-src-allowed</title>
    <script src="/resources/testharness.js"></script>
    <script src="/resources/testharnessreport.js"></script>
    <script src='../support/logTest.sub.js?logs=["PASS","TEST COMPLETE"]'></script>
    <script src="../support/alertAssert.sub.js?alerts=[]"></script>
    <script>
        window.addEventListener('securitypolicyviolation', function(e) {
            log('Fail');
        });
        window.addEventListener("message", function(event) {
            log(event.data);
        }, false);
        window.addEventListener('load', function() {
            setTimeout(function() {
                document.getElementById('submit').click();
                log("TEST COMPLETE");
            }, 0);
        });

    </script>
</head>

<body>
    <iframe name="test_target" id="test_iframe"></iframe>

    <form action="/content-security-policy/support/postmessage-pass.html" id="theform" method="get" target="test_target">
        <input type="text" name="fieldname" value="fieldvalue">
        <input type="submit" id="submit" value="submit">
    </form>
    <p>Tests that allowed form actions work correctly
        with GET and a redirect.</p>
    <div id="log"></div>
    </body>

</html>