<!DOCTYPE><!-- webkit-test-runner [ experimental:WebAnimationsCSSIntegrationEnabled=false ] -->
<html>
<head>
  <title>Partial layout compositing update</title>

  <style type="text/css" media="screen">
  .container {
    position: relative;
    width: 400px;
    height: 200px;
    border: 1px solid black;
    overflow: hidden;
  }

  .panel {
    position: absolute;
    top: 0px;
    left: 200px;
    width: 200px;
    height: 200px;
    z-index: 3;
    background-color: #bbb;
    -webkit-transition: left 0.1s linear;
  }

  .box {
    width: 100px;
    height: 100px;
  }

  .panel .content {
    background-color: green;
    -webkit-transform: translateZ(0);
  }
  
  .indicator {
    position: absolute;
    top: 0;
    left: 0;
    background-color: red;
  }
  </style>
  <script type="text/javascript" charset="utf-8">
    if (window.testRunner)
      testRunner.waitUntilDone();

    function startProgram()
    {
      var panel = document.getElementById("panel");
      panel.addEventListener('webkitTransitionEnd', function() {
        if (window.testRunner)
          testRunner.notifyDone();
      }, false);
      panel.style.left = "0";
    }

    window.addEventListener('load', startProgram, false)
    </script>
</head>
<body>

  <p>The green box should always obscure the red box below.</p>
  <div class="container">
    <div id="panel" class="panel">
      <div class="indicator box"></div>
      <div class="content box"></div>
    </div>
  </div>

</body>
</html>
