<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true internal:AsyncFrameScrollingEnabled=true ] -->
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="../../resources/basic-gestures.js"></script>
<style>
body { touch-action:none }
</style>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.dumpChildFramesAsText();
    testRunner.waitUntilDone();
}

function waitPromise(delay) {
    return new Promise(resolve => setTimeout(resolve, delay));
}

async function runTest() {
    if (!window.testRunner)
        return;

    await touchAndDragFromPointToPoint(100, 100, 100, 50);
    await liftUpAtPoint(100, 50);
    await waitPromise(1000);

    testRunner.notifyDone();
}
</script>
<body onload="runTest()">
<iframe srcdoc="
    <html>
    <script>
    function scroll() {
        document.body.innerText = 'Scrolled';
        if (window.testRunner)
            testRunner.notifyDone();
    }
    </script>
    <body style='height:1000px' onscroll='scroll()'>
    This document should be scrollable.
    </body>
    </html>
" width=500 height=500>
</iframe>
</body>
</html>
