<!-- webkit-test-runner [ useThreadedScrolling=false AsyncOverflowScrollingEnabled=true ] -->
<!DOCTYPE html>
<html>
<head>
  <style>
    html {
      -webkit-overflow-scrolling: touch;
    }

    textarea {
      width: 200px;
      height: 120px;
      margin: 10px;
      border: 1px solid black;
      display: inline-block;
      font-size: 24pt;
    }
  </style>
  <script>
    if (window.testRunner)
      testRunner.dumpAsText();

    function testScrollability(element)
    {
      // This will cause scrollable element content layers to be offset by y=50 with respect to their scrolling container.
      element.scrollTop = 50;
    }

    function doTest()
    {
      var divs = document.querySelectorAll('body > textarea');
      for (var i = 0; i < divs.length; ++i)
        testScrollability(divs[i]);

      if (window.testRunner)
        document.getElementById('results').innerText = window.internals.layerTreeAsText(document);
    }
    window.addEventListener('load', doTest, false);
  </script>
</head>
<body>

  <textarea>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit.
  </textarea>

  <textarea disabled>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit.
  </textarea>

  <pre id="results">This test requires DRT.</pre>
</body>
</html>
