| <!DOCTYPE html> |
| |
| <html> |
| <head> |
| <style> |
| .box { |
| width: 120px; |
| height: 100px; |
| background-color: blue; |
| margin: 100px 100px; |
| position: relative; |
| box-shadow: 0 0 10px black; |
| -webkit-transform-origin: 80% 20%; |
| transition: -webkit-transform 10s; |
| -webkit-transform: translateX(10px); |
| } |
| |
| .dot { |
| position: absolute; |
| top: 0; |
| left: 0; |
| height: 4px; |
| width: 4px; |
| background-color: silver; |
| } |
| |
| body.changed .box { |
| -webkit-transform: scale(1.3) rotate(1deg); |
| } |
| </style> |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| function dumpLayers() |
| { |
| if (window.testRunner) { |
| document.getElementById('layers').innerText = window.internals.layerTreeAsText(document); |
| testRunner.notifyDone(); |
| } |
| } |
| |
| function makeDots() |
| { |
| const width = 30; |
| const height = 30; |
| |
| const spacing = 10; |
| |
| for (var row = 0; row < height; ++row) { |
| for (var col = 0; col < width; ++col) { |
| var dot = document.createElement('div'); |
| dot.className = 'dot'; |
| dot.style.left = spacing * col + 'px'; |
| dot.style.top = spacing * row + 'px'; |
| document.body.appendChild(dot); |
| } |
| } |
| |
| window.setTimeout(function() { |
| document.body.classList.add('changed'); |
| window.setTimeout(dumpLayers, 0); |
| }, 0); |
| } |
| |
| window.addEventListener('load', makeDots, false); |
| </script> |
| </head> |
| <body> |
| |
| <div class="box"> |
| </div> |
| <pre id="layers"></pre> |
| </body> |
| </html> |