| <!DOCTYPE html> |
| <html> |
| <head> |
| <style> |
| div { |
| width: 100px; |
| height: 100px; |
| } |
| |
| .composited { |
| -webkit-transform: translateZ(0px); |
| } |
| |
| .clips { |
| overflow: hidden; |
| } |
| |
| .container { |
| position: absolute; |
| left: 0px; |
| top: 0px; |
| overflow: hidden; |
| -webkit-transform: translateX(110px); |
| } |
| |
| .under { |
| background-color: red; |
| position:absolute; |
| left: 0px; |
| top: 0px; |
| } |
| |
| .over { |
| background-color: green; |
| position: absolute; |
| left: 0px; |
| top: 0px; |
| } |
| |
| #layertree { |
| position: absolute; |
| left: 10000px; |
| top: 0px; |
| } |
| |
| body { |
| overflow: hidden; |
| } |
| </style> |
| |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(true); |
| window.addEventListener('load', function() { |
| document.getElementById("layertree").innerText = window.internals.layerTreeAsText(document); |
| }, false); |
| } |
| </script> |
| </head> |
| |
| <body> |
| <!-- Tests that CSS transforms and clipping work properly together. --> |
| <!-- This reproduces an error reported in https://bugs.webkit.org/show_bug.cgi?id=76486 |
| where the clipRect was not accounting for transforms. As a result, in the overlapMap, |
| the intersection of clipRect and layer bounds becomes empty, and layers on top do not |
| get properly composited. If this happens, the red "under composited" layer will be |
| exposed, because the "over" div does not become a composited layer. --> |
| <div class="container clips"> |
| <div class="under composited"></div> |
| <div class="over"></div> |
| </div> |
| |
| <pre id="layertree"></pre> |
| |
| </body> |
| |
| </html> |