<!DOCTYPE html> <!-- webkit-test-runner [ AsyncOverflowScrollingEnabled=true ] -->
<html>
<head>
    <style>
        body {
            height: 1000px;
        }

        .scroller {
            position: absolute;
            height: 300px;
            width: 300px;
            border: 2px solid gray;
            padding: 5px;
            overflow: scroll;
        }
        
        .inner-scroller {
            overflow-x: scroll;
            overflow-y: hidden;
            height: 100px;
            border: 1px solid black;
        }

        .stacking {
            opacity: 0.8;
        }

        .filler {
            height: 500px;
            width: 10px;
        }

        .wide {
            width: 200%;
            height: 10px;
        }
        
        .absolute {
            position: absolute;
            top: 100px;
            left: 50px;
            height: 200px;
            width: 200px;
            background-color: green;
        }
    </style>
    <script src="../../resources/ui-helper.js"></script>
    <script>
        if (window.testRunner)
            testRunner.waitUntilDone();

        async function doTest()
        {
            const scrollUpdatesDisabled = true;
            await UIHelper.immediateScrollElementAtContentPointToOffset(50, 50, 0, 100, scrollUpdatesDisabled);

            if (window.testRunner)
                testRunner.notifyDone();
        }
        
        window.addEventListener('load', doTest, false);
    </script>
</head>
<body>
    <div class="scroller">
        <div class="filler"></div>
        <div class="stacking">
            <div class="inner-scroller">
                <div class="wide"></div>
                <div class="absolute"></div>
            </div>
        </div>
        <div class="filler"></div>
    </div>
</body>
</html>
