<!DOCTYPE html> <!-- webkit-test-runner [ useFlexibleViewport=true AsyncOverflowScrollingEnabled=true AsyncFrameScrollingEnabled=true ] -->
<html>
<head>
    <meta name="viewport" content="initial-scale=1.0">
    <style>
        .scroller {
            margin: 10px;
            height: 300px;
            width: 300px;
            border: 1px solid black;
            overflow: scroll;
            position: relative;
        }
        
        .sticky {
            position: -webkit-sticky;
            top: 0px;
            width: 200px;
            height: 200px;
            background-color: green;
        }

        .container {
            margin: 40px;
            border: 2px solid red;
            height: 5000px;
            will-change: transform;
        }
    </style>
    <script src="../../resources/ui-helper.js"></script>
    <script>
        if (window.testRunner)
            testRunner.waitUntilDone();

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

            if (!testRunner.runUIScript)
                return;

            const scrollUpdatesDisabled = true;
            await UIHelper.immediateScrollElementAtContentPointToOffset(50, 50, 0, 20, scrollUpdatesDisabled);
            testRunner.notifyDone();
        }
        
        window.addEventListener('load', doTest, false);
    </script>
</head>
<body>
    <div class="spacer">
        <div class="scroller">
            <div class="container">
                <div class="sticky"></div>
            </div>
        </div>
    </div>
</body>
</html>
