<html>
<head>
    <style>
        #scroller {
            position: absolute;
            top: 42px;
            bottom: 0px;
            left: 0px;
            right: 0px;
            overflow: overlay;
        }

        #contentarea {
            position: absolute;
        }
    </style>
    <script>
        if (window.testRunner)
            testRunner.waitUntilDone();
        function runTest()
        {
            document.getElementById('bt').focus();
            if (!window.testRunner)
                return;
            setTimeout(() => testRunner.notifyDone(), 0);
        }
    </script>
</head>
<body onload="runTest()">
    <div id="scroller">
        <div id="contentarea">
            This tests that we can scroll to reveal something in a nested positioned block in overflow. 
            <div style="height: 800px"></div>
            <input type="button" id="bt" value="If you can see this, test has passed"></input>
        </div>   
    </div>
</body>
</html>
