| <!DOCTYPE html> |
| |
| <!-- |
| This test checks that the contents of accelerated scrolling layers are properly |
| updated also outside the current overflow clip. See |
| https://bugs.webkit.org/show_bug.cgi?id=100524. |
| --> |
| |
| <html> |
| <head> |
| <style type="text/css"> |
| #scroller { |
| overflow: scroll; |
| -webkit-overflow-scrolling: touch; |
| width: 200px; |
| height: 200px; |
| } |
| |
| #indicator { |
| background: red; |
| height: 200px; |
| } |
| |
| #content { |
| height: 1000px; |
| } |
| </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); |
| |
| var scroller = document.getElementById('scroller'); |
| var indicator = document.getElementById('indicator'); |
| |
| // Make sure the scrolling content is painted before we start. |
| scroller.offsetTop; |
| |
| // Scroll all the way to the bottom and change the color of the |
| // indicator (which is now outside the overflow clip). |
| scroller.scrollTop = 1000; |
| window.internals.startTrackingRepaints(); |
| indicator.style.background = 'green'; |
| |
| // Scroll back up so that the updated (green) indicator is visible. |
| var layerTree = document.getElementById('layerTree'); |
| scroller.scrollTop = 0; |
| layerTree.innerText = |
| window.internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_REPAINT_RECTS); |
| window.internals.stopTrackingRepaints(); |
| }); |
| </script> |
| </head> |
| <body> |
| <div id="scroller"> |
| <div id="indicator"></div> |
| <div id="content"></div> |
| </div> |
| <pre id="layerTree">This text will be replaced with the layer tree.</pre> |
| </body> |
| </html> |