| <!DOCTYPE html> |
| <html> |
| <head> |
| <title>Test of very large layer resizing</title> |
| |
| <style type="text/css" media="screen"> |
| |
| #container { |
| width: 500px; |
| height: 500px; |
| border: 1px solid black; |
| background-color: yellow; |
| -webkit-transform:translateZ(0); |
| } |
| |
| .box { |
| position: absolute; |
| left:50px; |
| width: 200px; |
| height: 200px; |
| } |
| |
| .at-the-top { |
| top: 100px; |
| background-color: red; |
| } |
| </style> |
| <script type="text/javascript" charset="utf-8"> |
| if (window.testRunner) |
| testRunner.dumpAsText(); |
| |
| function testOnLoad() |
| { |
| // Small layer first |
| var result = recordLayerTree("First (small layer):<br>"); |
| |
| // Huge layer second |
| document.getElementById('container').style.height = "5000px"; |
| result += recordLayerTree("<br><br>Second (huge layer):<br>"); |
| |
| // Small layer third |
| document.getElementById('container').style.height = "500px"; |
| result += recordLayerTree("<br><br>Third (small layer):<br>"); |
| |
| document.getElementById('layers').innerHTML = result; |
| } |
| |
| function recordLayerTree(messagePrefix) |
| { |
| if (!window.testRunner) |
| return ""; |
| |
| // Force a layout and a paint to make sure the compositing layers |
| // have been updated. |
| document.body.offsetLeft; |
| testRunner.displayAndTrackRepaints(); |
| |
| return messagePrefix + window.internals.layerTreeAsText(document); |
| } |
| |
| window.addEventListener('load', testOnLoad, false); |
| </script> |
| </head> |
| <body> |
| <p> |
| The yellow box should be 500 x 500 on startup. Then it should |
| stretch to be 500 x 5000, then shrink back down to 500 x 500. |
| This tests that we can resize to a huge layer and back again |
| and still maintain integrity of the layer tree. |
| </p> |
| <div id="container"> |
| <div class="box at-the-top"></div> |
| </div> |
| <pre id="layers">Layer tree appears here in DRT.</pre> |
| </body> |
| </html> |