<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="initial-scale=1">
    <script>
        if (window.testRunner) {
            testRunner.dumpAsText();
            testRunner.waitUntilDone();
        }

        function touchEventHandler(event) { throw "This is not supposed to happen!"; }
        document.addEventListener('touchstart', touchEventHandler, { 'passive': true });
        document.addEventListener('touchmove', touchEventHandler, { 'passive': true });
        document.addEventListener('touchend', touchEventHandler, { 'passive': true });
        document.addEventListener('touchcancel', touchEventHandler, { 'passive': true });

        function runTest()
        {
            let eventTarget = document.getElementById("eventTarget");
            eventTarget.scrollTop = 5;
            eventTarget.scrollTop = 0;
            if (window.testRunner) {
                document.getElementById("output").innerText = window.internals.scrollingStateTreeAsText();
                testRunner.notifyDone();
            }
        }

        window.addEventListener('load', function() { setTimeout(runTest, 15); }, false);
    </script>
</head>
<body>
    <div id="eventTarget" style="overflow: scroll; height: 200px">
        <div style="height: 3000px"></div>
    </div>
    <p>Verify that the block scrolling on overflow has touch event region with synchronous dispatch associated with it even within a asynchronous dispatch region.</p>
    <pre id="output">
    </pre>
</body>
</html>
