<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.display();

      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>
