<!DOCTYPE html>

<html>
<head>
    <style>
        .container {
            overflow: hidden;
            position: absolute;
            z-index: 1;
            border: 1px solid black;
        }
        
        .composited {
          -webkit-transform: translateZ(0);
        }
        
        .box {
          width: 100px;
          height: 100px;
          margin: 10px;
          background-color: blue;
        }
        
        .filtered {
            -webkit-filter: blur(2px);
            opacity: 0.2;
        }
        
        .filtered.changed {
            opacity: 0.8;
        }
    </style>
    <script>
        if (window.testRunner)
            testRunner.waitUntilDone();
        
        function doTest()
        {
            window.setTimeout(function() {
                document.getElementById('target').classList.add('changed');
                if (window.testRunner)
                    testRunner.notifyDone();
            }, 0);
        }
        window.addEventListener('load', doTest, false);
    </script>
</head>
<body>
    <div class="container">
        <div id="target" class="filtered box"></div>
        <div class="composited box"></div>
    </div>
</body>
</html>
