<!DOCTYPE html>

<html>
<head>
  <style type="text/css" media="screen">
    body {
      margin: 0;
    }
    
    iframe {
      height: 200px;
      width: 200px;
      margin: 10px;
      padding: 10px;
      border: none;
      -webkit-transform: translateX(100px);
    }
    
    .container {
      position: absolute;
      top: 100px;
      -webkit-transform: translateZ(0);
    }
    
    #indicator {
      position: absolute;
      top: 120px;
      left: 120px;
      height: 200px;
      width: 200px;
      background-color: red;
    }
  </style>
  <script type="text/javascript" charset="utf-8">
    
    if (window.testRunner)
      testRunner.waitUntilDone();

    function doTest()
    {
      window.setTimeout(function() {
        var iframe = document.getElementsByTagName('iframe')[0];
        iframe.contentWindow.scrollTo(0, 200);

        if (window.testRunner)
          testRunner.notifyDone();
      }, 0)
    }
    
    window.addEventListener('load', doTest, false);
  </script>
</head>
<body>
  <!-- You should see a green box below. -->
  <div id="indicator"></div>

  <div class="container">
    <iframe src="resources/green-red-subframe.html" scrolling="no"></iframe>
  </div>

</body>
</html>
