<!DOCTYPE html>

<html>
<head>
    <style>
        body {
            height: 2000px;
            background-image: url('resources/simple_image.png');
            background-size: 200px 200px;
            background-attachment: fixed;
            overflow: hidden; /* hide scrollbar */
        }
        .fixed {
            position: fixed;
            z-index: -1;
            top: 50px;
            left: 50px;
            width: 200px;
            height: 200px;
            background-color: silver;
        }
    </style>
    <script>
    if (window.testRunner) {
        testRunner.waitUntilDone();
        internals.settings.setPreferCompositingToLCDTextEnabled(true);
    }

    function doTest()
    {
        window.scrollTo(0, 223);
        if (window.testRunner)
            testRunner.notifyDone();
    }

    window.addEventListener('load', doTest, false);
    </script>
</head>
<body>

    <div class="fixed box"></div>

</body>
</html>
