<!-- 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.internals) {
                // Force software rendering mode.
                window.internals.settings.setAcceleratedCompositingEnabled(false);
            }
        </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>
