<!-- 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.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>
