| <!-- webkit-test-runner [ useThreadedScrolling=false ] --> |
| <!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 type="text/javascript"> |
| if (window.internals) |
| window.internals.settings.setAcceleratedCompositingForOverflowScrollEnabled(true); |
| |
| window.addEventListener('load', function() { |
| if (!window.testRunner || !window.internals) { |
| alert('This test requires testRunner to run!'); |
| return; |
| } |
| testRunner.dumpAsText(false); |
| |
| // First paint the entire view including the scrolling element. |
| var scroller = document.getElementById('scroller'); |
| scroller.offsetTop; |
| |
| // Scroll down. This should not cause any more repaints to the |
| // scrolling contents. |
| window.internals.startTrackingRepaints(); |
| scroller.scrollTop = 25; |
| |
| var layerTree = document.getElementById('layerTree'); |
| layerTree.innerText = |
| window.internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); |
| window.internals.stopTrackingRepaints(); |
| }); |
| </script> |
| </head> |
| <body> |
| <div id="scroller"> |
| <div id="content"></div> |
| </div> |
| <pre id="layerTree">This text will be replaced with the layer tree.</pre> |
| </body> |
| </html> |