| <!DOCTYPE> |
| <html> |
| <head> |
| <title>Creating composited layers for fixed position elements</title> |
| |
| <style type="text/css" media="screen"> |
| #tall { |
| height: 100px; |
| } |
| |
| #fixed { |
| width: 300px; |
| height: 100px; |
| position: fixed; |
| top: 30px; |
| right: 5px; |
| background-color: green; |
| } |
| </style> |
| <script type="text/javascript" charset="utf-8"> |
| if (window.internals) |
| window.internals.settings.setAcceleratedCompositingForFixedPositionEnabled(true); |
| |
| function doTest() |
| { |
| var layerTreeOutput = ''; |
| |
| // If the fixed position element doesn't have its own stacking context then |
| // it cannot get a composited layer. |
| if (window.testRunner) |
| layerTreeOutput += 'Before (should be empty): \n' + window.internals.layerTreeAsText(document) + '\n'; |
| |
| // Adding a z-index to the fixed position element will give it a stacking context |
| // and allow it to be composited. |
| document.getElementById('fixed').style.zIndex = '1'; |
| |
| if (window.testRunner) { |
| layerTreeOutput += 'After (should not be empty): \n' + window.internals.layerTreeAsText(document); |
| document.getElementById('layertree').innerText = layerTreeOutput; |
| testRunner.dumpAsText(); |
| } |
| |
| // Adding a transform to the container will turn off compositing. |
| document.getElementById('container').style.webkitTransform = 'translateX(0)'; |
| if (window.testRunner) { |
| layerTreeOutput += 'After (should be empty): \n' + window.internals.layerTreeAsText(document); |
| document.getElementById('layertree').innerText = layerTreeOutput; |
| testRunner.dumpAsText(); |
| } |
| |
| } |
| |
| window.addEventListener("load", doTest, false); |
| |
| </script> |
| </head> |
| <body> |
| <!-- Fixed position element should get its own layer --> |
| <pre id="layertree"></pre> |
| <div id="tall"></div> |
| <div id="container"> |
| <div id="fixed"></div> |
| </div> |
| </body> |
| </html> |