<!-- This test asserts that blit-scrolling is disabled when blur is applied on a layer 
    that contains a fixed positioned object.
    One fixed black bar should be visible at the top of the page. The page should be scrolled
    100px and no red should be visible. The rest of the page should be green.
 -->
<!DOCTYPE html>
<html>
    <head>
        <script>
            if (window.testRunner) {
                // Force software rendering mode.
                window.testRunner.overridePreference("WebKitAcceleratedCompositingEnabled", "0");
            }
        </script>
        <!-- Make sure the mock scrollbars are enabled after the call to overridePreference, otherwise the setting will be overwritten. -->
        <script src="../../compositing/resources/mock_scrollbars.js"></script>
        <style>
            body {
                margin: 0px;
                border: 0px;
                padding: 0px;
            }

            .blur {
                -webkit-filter: blur(1px);
            }

            #fixedBox {
                position: fixed;
                background-color: #000000;
                height: 100px;
                width: 100%;
            }

            #redBox {
                background-color: red; 
                height: 200px;
            }

            #greenBox {
                background-color: green;
                height: 1000px;
            }
        </style>
        <script src="../../fast/repaint/resources/repaint.js"></script>
        <script type="text/javascript">
            function repaintTest() {
                window.scrollTo(0, 100);
            }
        </script>
    </head>
    <body onload="runRepaintTest()">
        <div class="blur">
            <div id="fixedBox"></div>
            <div id="redBox"></div>
            <div id="greenBox"></div>
        </div>
    </body>
</html>
