<!DOCTYPE html>
<html>
  <head>
    <title>Programmatic scrolling of iframe</title>
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <script>
        if (window.testRunner)
            testRunner.waitUntilDone();
        if (window.internals)
            internals.settings.setAsyncFrameScrollingEnabled(true);

        function runTest() {
            // This checks scrolling to the location of the green square.
            document.getElementById("doNotScroll").contentWindow.window.scrollTo(0, 0);

            if (window.testRunner)
                testRunner.notifyDone();
        }
     </script>
    <style>
        iframe {
            float: left;
            background: linear-gradient(135deg, red, orange);
            border: 0;
            height: 100px;
            width: 100px;
            overflow: none;
        }
    </style>
  </head>
  <body>
    <p>This test passes if you see a green square.</p>
    <div style="position: absolute; top: 3em; width: 100px; height: 100px; background: green;">
        <iframe id="doNotScroll" style="left: 0px; top: 0px;" scrolling="yes" srcdoc="
            <body style='margin: 0; width: 200px; height: 200px'>
                <div style='position: absolute; width: 100px; height: 100px; background: green;'></div>
            </body>" onload="runTest()">
        </iframe>
    </div>
  </body>
</html>
