<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript">
        if (window.testRunner)
            testRunner.dumpAsText();

        if (window.internals)
            internals.settings.setAcceleratedCompositingForFixedPositionEnabled(true);

        function test()
        {
            document.body.offsetHeight;
            if (window.internals)
                window.internals.startTrackingRepaints();

            window.scrollTo(0, 1000);
            window.scrollTo(0, 100);

            if (window.internals)
                document.getElementById('repaintRects').textContent = window.internals.repaintRectsAsText();
        }
    </script>
</head>
<body style="height:2000px" onload="test()">
    <div style="position: fixed; top: 100px; left: 100px; width: 200px; height: 200px"></div>
    There should be no repaints here:
    <pre id="repaintRects"></pre>
</body>
</html>
