| <!DOCTYPE html> |
| |
| <html> |
| <head> |
| <style type="text/css" media="screen"> |
| body { |
| position: relative; |
| } |
| #parent { |
| position: relative; |
| width: 300px; |
| height: 250px; |
| padding: 20px; |
| border: 1px solid black; |
| -webkit-transform: translate(0px, 0px); |
| } |
| |
| #child { |
| position: relative; |
| left: 10px; |
| width: 250px; |
| height: 220px; |
| background-color: blue; |
| -webkit-transform: translate(0px, 0px); |
| } |
| |
| #grandchild { |
| position: relative; |
| top: 10px; |
| left: 10px; |
| width: 200px; |
| height: 200px; |
| background-color: yellow; |
| -webkit-transform: rotate(30deg); |
| } |
| |
| #greatgrandchild { |
| position: relative; |
| left: 100px; |
| width: 250px; |
| height: 100px; |
| background-color: green; |
| } |
| |
| </style> |
| <script type="text/javascript" charset="utf-8"> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| testRunner.waitUntilDone(); |
| } |
| |
| var text = ""; |
| function showTree(which) |
| { |
| setTimeout(function() { |
| if (window.testRunner) { |
| text += "\n" + which + " dump layer tree:\n"; |
| text += window.internals.layerTreeAsText(document); |
| document.getElementById('layers').innerText = text; |
| } |
| }, 0); |
| } |
| |
| function doTest() |
| { |
| if (window.testRunner) |
| //document.getElementById('layers').innerText = ""; |
| showTree("First"); |
| |
| //Put child in compositing mode |
| setTimeout(function() { |
| document.getElementById("greatgrandchild").style.webkitTransform = "perspective(400) translate3D(-30px, 30px, 100px) rotateY(60deg)"; |
| showTree("Second"); |
| |
| // Take it back out of compositing mode |
| setTimeout(function() { |
| document.getElementById("greatgrandchild").style.webkitTransform = ""; |
| showTree("Third"); |
| |
| setTimeout(function() { |
| testRunner.notifyDone(); |
| }, 0); |
| }, 100); |
| }, 100); |
| } |
| |
| window.addEventListener('load', doTest, false); |
| </script> |
| </head> |
| |
| <body> |
| |
| <!-- Normally we skip making a compositing layer on a parent, even if its children are composited --> |
| <!-- But if the parent has a 2D transform it should get a compositing layer --> |
| <!-- Here we test that the entire hierarchy gets layers when some elements are transformed and others arent --> |
| <!-- Should see a box containing a blue box containing a rotated yellow box containing a green box in perspective --> |
| <div id="parent"> |
| This content is in the parent |
| <div id="child"> |
| <div id="grandchild"> |
| <div id="greatgrandchild"> |
| Box should switch between perspective and flat |
| </div> |
| </div> |
| </div> |
| </div> |
| |
| <pre id="layers">Layer tree goes here in DRT</pre> |
| </body> |
| </html> |
| |