<!DOCTYPE html>

<html>
<head>
  <style type="text/css" media="screen">
    iframe {
        border: 10px solid black;
        padding: 5px;
        margin: 20px;
        height: 150px;
        width: 300px;
        -webkit-box-shadow: 0 0 20px black;
        -webkit-transform: translateZ(0);
    }
    
    .overlay {
      position: absolute;
      width: 50px;
      height: 50px;
      top: 5px;
      left: 5px;
      background-color: rgba(0, 0, 0, 0.2);
    }
    
  </style>
  <script type="text/javascript" charset="utf-8">
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }

    function doTest()
    {
        if (window.testRunner)
            testRunner.display();

      document.getElementById('iframe').className = 'composited';

      if (window.testRunner) {
        document.getElementById('layers').innerText = window.internals.layerTreeAsText(document);
        testRunner.notifyDone();
      }
    }
    
    window.addEventListener('load', doTest, false);
  </script>
</head>
<body>

    <!-- Test with already-composited iframe, and iframe contents becoming composited. -->
    <iframe id="iframe" src="resources/composited-subframe.html"></iframe>
    
    <div class="overlay">
    </div>

    <pre id="layers">Layer tree appears here in DRT.</pre>
</body>
</html>
