<html lang="en">
<head>
  <script type="text/javascript" charset="utf-8">

      function onBackgroundImageLoad()
      {
        if (window.testRunner)
          testRunner.notifyDone();
      }
      function doTest()
      {
          var bg = document.querySelector(".test");
          if (window.testRunner)
              testRunner.dumpAsText(true);

          // Change the layer to become background only.
          if (window.testRunner)
              window.testRunner.display();

          var img = new Image;
          img.onload = onBackgroundImageLoad;
          img.src = "../resources/simple_image.png";
      }

      if (window.testRunner)
          testRunner.waitUntilDone();

      window.addEventListener('DOMContentLoaded', doTest, false);
    </script>
    <style>
    .composited { -webkit-transform: rotate3d(0, 0, 1, 0); }
    .test {
      height: 200px;
      width: 260px;
      background-image: url(../resources/simple_image.png);
    }
   </style>
</head>
<body>
  <div class="test composited"></div>
</body>
</html>
