<!DOCTYPE HTML>
<html>
<script>
  if (window.testRunner) {
    testRunner.dumpAsText();
    window.addEventListener('load', doTest, false);
  }

  function doTest() {
    var layers = internals.layerTreeAsText(document);
    document.getElementById("layertree").innerText = layers;
  }
</script>
<body>
  <!-- Test to make sure a simple CSS filter does not create a composited layer.
       The test is successful when the composited layer tree does not show a
       composited layer for the filtered image. -->
  <img style="filter: blur(0);" src="resources/reference.png">
  <pre id="layertree"></pre>
</body>
</html>
