<!DOCTYPE html>
<html>
<head>
  <style type="text/css" media="screen">
    .box {
      position: relative;
      width: 100px;
      height: 100px;
      background-color: blue;
      margin: 20px;
      box-shadow: 0 0 3px black; /* make the compositing layers a little bigger */
    }
    
    .container {
      display: inline-block;
    }
  </style>
  <script type="text/javascript" charset="utf-8">
   if (window.testRunner)
     testRunner.dumpAsText();

   function doTest()
   {
       if (window.testRunner) {
         document.getElementById('results').innerText = window.internals.layerTreeAsText(document);
         testRunner.notifyDone();
       }
   }
   
   window.addEventListener('load', doTest, false);
  </script>
</head>
<body>
  <div class="container">
    <div class="box" style="-webkit-transform: translateZ(0);"></div>
    <!-- The second box should not be composited. -->
    <div class="box"></div>
  </div>

  <div class="container">
    <div class="composited box" style="-webkit-transform: rotate3d(0, 0, 1, 15deg);"></div>
    <!-- The second box should not be composited. -->
    <div class="box"></div>
  </div>

  <div class="container">
    <div class="composited box" style="-webkit-transform: rotate3d(0, 0, 1, 45deg);"></div>
    <!-- The second box should be composited. -->
    <div class="box"></div>
  </div>

  <pre id="results">Layer tree goes here in DRT.</pre>
</body>
</html>
