<html> <!-- webkit-test-runner [ JavaScriptCanOpenWindowsAutomatically=false ] -->
    <body>
        <form action="resources/popup-allowed-from-gesture-initiated-form-submit-target.html" method="post" target="_blank" rel="opener">
            <input id="button" type="submit" value="Click Here" />
        </form>
        <div id="console">FAIL</div>
        <script> 
            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.waitUntilDone();

                var button = document.getElementById("button");

                if (window.eventSender) {
                    eventSender.mouseMoveTo(button.offsetLeft + button.offsetWidth / 2, button.offsetTop + button.offsetHeight / 2);
                    eventSender.mouseDown();
                    eventSender.mouseUp();
                }
            }
        </script> 
    </body> 
</html>
