<!DOCTYPE html>
<html>
<head>
<style>
.comp {
  -webkit-transform: translateZ(0px);
}
body {
  margin:0;
  padding:0;
}
.shadow {
  position:absolute;
  left:20px; right:20px;
  width:500px;
  height:500px;
  top:0px; bottom:20px;
  z-index:120;
  margin-top:20px;
  border: 1px solid transparent;
  -webkit-box-shadow: 0 0 6px #090;
  background-color: #090;
}
#scroll {
  overflow-y: hidden; /* scrollable but no scrollbars visible. */
  width:500px;
  height: 500px;
}
.scrollContent {
  width:100%;
  height: 1000px; /* make the container scrollable */
  background-color: #0d0;
}
</style>
<script type="text/javascript">
  if (window.testRunner) {
    testRunner.dumpAsText(true);
    testRunner.waitUntilDone();
  }

  window.onload = function() { setTimeout(function() {
    if (window.testRunner) {
      testRunner.notifyDone();
    }
  }, 0); };
</script>
</head>

<body>
<!-- If culled incorrectly, the top/left edges outside of the shadowed box end up being culled instead of painted/drawn properly.
     If clipping/transforms are applied wrongly, outside the right/bottom edges may also end up being culled. -->
<div class="comp shadow">
  <div id="scroll">
    <div class="scrollContent">
    </div>
  </div>
</div>
</body>
</html>
