<!DOCTYPE html>

<html>
<head>
  <style type="text/css" media="screen">
    iframe {
        border: 10px solid black;
        padding: 5px;
        height: 150px;
        width: 300px;
        -webkit-box-shadow: 0 0 20px black;
    }
    .box {
        height: 200px;
        width: 200px;
        margin: 10px;
        padding: 5px;
        background-color: blue;
        -webkit-transform: translateZ(1px);
        overflow:hidden;
    }
    .box:hover {
        -webkit-transform: none;
    }
  </style>
  <script type="text/javascript" charset="utf-8">
    
    if (window.testRunner) {
      testRunner.dumpAsText();
      testRunner.waitUntilDone();
    }

    function doTest()
    {
      window.setTimeout(function() {
        var div = document.getElementById('invisible');
        div.style.cssText = "";
        if (window.testRunner) {
          testRunner.displayAndTrackRepaints();
          document.getElementById('layers').innerHTML = window.internals.layerTreeAsText(document);
          testRunner.notifyDone();
        }
      }, 0)
    }
    
    window.addEventListener('load', doTest, false);
  </script>
</head>
<body>

    <!-- The nested iframe should appear when we remove "diplay:none". -->
    <div id="invisible" style="display:none;">
        <iframe src="resources/intermediate-frame.html"></iframe>
    </div>
    <div class="box">
    </div>
    <pre id="layers">Layer tree appears here in DRT.</pre>
</body>
</html>
