<html><!-- webkit-test-runner [ JavaScriptCanOpenWindowsAutomatically=false ] -->
    <head>
        <script src="../../resources/js-test-pre.js"></script>
    </head>
    <body>
        <textarea id="test" width="100" onfocus="popup()" onblur="popup()"></textarea>
        <div id="console"></div>

        <script>
            var win;
            function popup() {
                win = window.open("about:blank", "blank");
                shouldBeNull("win");
            }

            if (window.testRunner) {
                testRunner.dumpAsText();
                testRunner.waitUntilDone();
            }

            document.getElementById("test").focus();
            document.getElementById("test").blur();

            if (window.testRunner)
                testRunner.notifyDone();
        </script>
    </body>
</html>
