<!-- 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.php" method="POST">
          <input type="submit" />
        </form>
        <iframe src="javascript:false" name="iframe"></iframe>
    </div>
</body>
</html>
