| <!DOCTYPE html> |
| <style> |
| .container { |
| width: 100px; |
| height:100px; |
| position:absolute; |
| -webkit-transform:translateZ(0); |
| overflow:auto; |
| } |
| |
| .content { |
| -webkit-transform: translateZ(0); |
| position:absolute; |
| width:10px; |
| height:10px; |
| } |
| |
| .tall { |
| height:200px; |
| } |
| |
| .wide { |
| width:200px; |
| } |
| |
| .resizeWidget { |
| resize: both; |
| } |
| |
| </style> |
| <pre id="layerTree"></pre> |
| <div class="container"> |
| <div id="vertical" class="content tall"></div> |
| </div> |
| <div class="container"> |
| <div id="horizontal" class="content wide"></div> |
| </div> |
| <div class="container"> |
| <div id="both" class="content tall wide"></div> |
| </div> |
| <div id="corner" class="container resizeWidget"> |
| <div class="content"></div> |
| </div> |
| <script> |
| function finishTest() { |
| document.getElementById("vertical").classList.remove("tall"); // topmost div loses a vertical scrollbar |
| document.getElementById("horizontal").classList.remove("wide"); // second div loses a horizontal scrollbar |
| document.getElementById("both").classList.remove("wide"); // third div loses both |
| document.getElementById("both").classList.remove("tall"); // vertical and horizontal scrollbars |
| document.getElementById("corner").classList.remove("resizeWidget"); // bottom div loses a resize corner but no scrollbars |
| if (window.testRunner) { |
| testRunner.displayAndTrackRepaints(); // Ensure compositor tree is up to date. |
| document.getElementById("layerTree").innerText = window.internals.layerTreeAsText(document); |
| } |
| } |
| |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.displayAndTrackRepaints(); // Force compositor state to be updated before the container needs any overflow controls |
| finishTest(); |
| } else |
| window.setTimeout(finishTest, 0); |
| </script> |