<!DOCTYPE html>

<html>
<head>
  <style type="text/css" media="screen">
    body {
      position: relative;
    }
    .parent {
      position: relative;
      width: 200px;
      height: 150px;
      padding: 20px;
      border: 1px solid black;
      -webkit-transform: translate(0px, 0px);
    }
    
    .child {
      position: relative;
      left: 100px;
      width: 250px;
      height: 100px;
      background-color: green;
      -webkit-transform: perspective(600)  translate3D(-50px, 10px, 100px) rotateY(45deg);
    }
    
  </style>
  <script type="text/javascript" charset="utf-8">
    if (window.testRunner)
      testRunner.waitUntilDone();

    function doTest()
    {
      if (window.testRunner)
        testRunner.notifyDone();
    }

    window.addEventListener('load', doTest, false);
  </script>
</head>

<body>
  
  <!-- Normally we skip making a compositing layer on a parent, even if its children are composited -->
  <!-- But if the parent has a 2D transform it should get a compositing layer -->
  <!-- Should see a green box in perspective. Layer tree should show nested layers-->
  <div id="parent" class="parent">
      This content is in the parent
      <div id="child" class="child">
          Box should have perspective
      </div>
  </div>
</body>
</html>

