<!-- Based on compositing/overflow/scrolling-without-painting.html -->
<!DOCTYPE html>

<!--
This test checks that accelerated scrolling layers can be scrolled without
repainting their contents. See https://bugs.webkit.org/show_bug.cgi?id=96087.
-->

<html>
<head>
  <style type="text/css">
    #scroller {
        overflow: scroll;
        -webkit-overflow-scrolling: touch;
        width: 200px;
        height: 200px;
        border: solid thin blue;
    }

    #content {
        height: 1000px;
        margin-top: 25px;
    }
  </style>
  <script src="resources/paint-invalidation-test.js"></script>
  <script type="text/javascript">
      if (window.testRunner)
          testRunner.dumpAsText();
      if (window.internals)
          window.internals.settings.setPreferCompositingToLCDTextEnabled(true);

      function paintInvalidationTest() {
          // Scroll down. This should not cause any more repaints to the
          // scrolling contents.
          document.getElementById('scroller').scrollTop = 25;
      }

      runPaintInvalidationTest();
  </script>
</head>
<body>
  <div id="scroller">
    <div id="content"></div>
  </div>
</body>
</html>
