<!DOCTYPE HTML>
<!--
  This test simply checks that when we have multiple 3d rendering contexts, that
  they get separate and unique id's in the layer tree dump.
-->
<html>
  <head>
    <style>
      .composited {
        will-change: transform;
        width: 100px;
        height: 100px;
        background-color: green;
      }

      #grandparent {
        -webkit-transform-style: preserve-3d;
      }

      #child {
        -webkit-transform-style: preserve-3d;
      }

      #console {
        position: absolute;
        left: 4000px;
      }
    </style>
    <script>
      if (window.testRunner)
        testRunner.dumpAsText();


      function dumpLayerTree() {
        if (window.internals)
          document.getElementById("console").innerHTML = internals.layerTreeAsText(document);
      }

      window.onload = dumpLayerTree;
    </script>
  </head>
  <body>
    <div class="composited" id="grandparent">
      <div class="composited" id="parent">
        <div class="composited" id="child">
        </div>
      </div>
    </div>
    <pre id="console"></pre>
  </body>
</html>
