<!-- webkit-test-runner [ useEphemeralSession=true ] -->
<!DOCTYPE html>
<html>
<title>Checks that a POST resulting in a main frame navigation is not affected by third-party cookie rules</title>
<script>
if (window.testRunner) {
    testRunner.waitUntilDone();
    testRunner.dumpAsText();
    testRunner.dumpChildFramesAsText();
    testRunner.setAlwaysAcceptCookies(false);
}

function runTest()
{
    document.getElementById('form').submit();
}
</script>
<body onload="runTest()">
    <div>
        <form id="form" action="http://localhost:8000/security/cookies/resources/set-a-cookie.py" method="POST">
          <input type="submit" />
        </form>
        <iframe src="javascript:false" name="iframe"></iframe>
    </div>
</body>
</html>
