<html>
<head>
<title>"autofocus" scrolling test</title>
<style>
 p#test{ position:absolute; top:150% }
 input { background:red }
 input:focus { background:lime }
</style>
<script>
    function log(message) {
        document.getElementById("console").innerHTML += "<li>"+message+"</li>";
    }

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

        requestAnimationFrame(() => {
            if (document.activeElement == document.getElementsByTagName("input")[0] &&
                document.scrollingElement.scrollTop != 0)
                log("SUCCESS");
            else
                log("FAILURE");
            if (window.testRunner)
                testRunner.notifyDone();
        });
    }
</script>
</head>
<body onload="test()">
<p id="test">This form control should have a green background: <input autofocus>
<hr>
<ol id="console"></ol>
</body>
</html>
