<html>
<head>
  <style>
    #clipper {
      width: 550px;
      height: 550px;
      overflow:hidden;
    }

    #trigger {
      /* Only overlap with the contents element, not the stretch element */
      -webkit-transform:translateZ(0);
      position: absolute;
      top: 0px;
      left: 0px;
      width: 500px;
      height: 200px;
    }

    #container {
      /* Force compositing for this layer if any children get composited */
      -webkit-transform:translate(0px, 1px);
    }

    #negative {
      /* Trigger foreground layer from container */
      z-index: -1;
      position: absolute;
    }

    #contents {
      /* foreground layer contents */
      width: 550px;
      height: 550px;
      background-color: green;
    }

    /* Move this element to stretch container to have a negative offset */
    #stretch {
      position: absolute;
      background-color: blue;
      top: 200px;
      left: -200px;
      width: 50px;
      height: 50px;
    }

  </style>
  <script>
    if (window.testRunner)
      testRunner.dumpAsText(true);

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

      document.getElementById("stretch").style.left = "-100px";
    }

    window.addEventListener('load', doTest, false);
  </script>
</head>
<body>
  <div id="trigger"></div>
  <div id="clipper">
    <div id="container">
      <img id="contents">
      <div id="stretch"></div>
      <div id="negative"></div>
    </div>
  </div>
</body>
