<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
<html>
<head>
<script src="../../resources/js-test-pre.js"></script>
</head>
<script>
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    function doTest()
    {
        description("Test to make sure a simple CSS filter does not create a compositing layer. Test is successful of render tree does not show any compositing");
        if (window.testRunner) {
            var layers = window.internals.layerTreeAsText(document);
            if (layers == "")
                testPassed("no compositing layers");
            else
                testFailed("content has compositing layers");
            document.getElementById("layertree").innerText = layers;
            testRunner.notifyDone();
        }
    }
    
    window.addEventListener('load', doTest, false);

</script>
<img style="-webkit-filter: blur(0);" src="resources/reference.png">
<div id="layertree"></div>
