<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true ] -->

<html>
<meta name="viewport" content="initial-scale=1.0">

<head>
    <script src="../../../resources/js-test-pre.js"></script>
    <script src="../../../resources/ui-helper.js"></script>

    <script>
    if (window.testRunner)
        testRunner.waitUntilDone();

    async function runTest() {
        window.addEventListener("scroll", scrolled, false);
        if (window.testRunner)
            await UIHelper.doubleTapAt(15, 400);
    }
    function scrolled() {
        if (window.testRunner)
            testRunner.notifyDone();
    }
    </script>

    <style>
    body {
        margin: 0;
    }
    </style>
</head>

<body onload="runTest()">
    <p>Double tapping on the image should scroll.</p>
    <p>This test is best run in WebKitTestRunner. If you are running this test manually, verify that double tapping on the bottom of the viewport caused a scroll.</p>
    <img src="thin-gradient.jpg">
    <script src="../../../resources/js-test-post.js"></script>
</body>

</html>
