<!DOCTYPE html>
<!-- 
    This tests verifies that blur is repainted using the full source image of the element instead of just the dirty area.
    Also it tests that the filter area includes all the child RenderLayers and applies the children's transforms correctly.
    You should see three green rectangles slightly rotated and blured. There should be no red.    
-->
<html>
<head>
    <style>
        .box {
            position: relative;
            margin: 10px;
            height: 50px;
            width: 50px;
            background-color: green;
            z-index: 1;
            -webkit-transform: translate(50px, 0px) rotate(20deg);
        }

        .before {
            background-color: red;
        }

        .blur {
            background: red;
            margin: 50px;
            -webkit-filter: blur(5px);
            z-index: 0;
            width: 0px;
            height: 0px;
        }
    </style>

    <script src="../../fast/repaint/resources/repaint.js"></script>
    <script>
        if (window.testRunner)
            testRunner.dumpAsText(true);

        function repaintTest()
        {
            document.querySelector(".before").classList.remove("before");
        }
    </script>
</head>

<body onload="runRepaintTest()">

    <div class="blur">
        <div class="box"></div>
        <div class="box before"></div>
        <div class="box"></div>
    </div>

</body>
</html>
