| <!DOCTYPE html> |
| <style> |
| #stacking { |
| position: absolute; |
| width: 200px; |
| height: 200px; |
| background-color: lightgreen; |
| } |
| |
| #clipper { |
| width: 100px; |
| height: 100px; |
| background-color: lightblue; |
| z-index: -1; |
| } |
| |
| .clipping { |
| overflow: hidden; |
| } |
| |
| #composited { |
| position: relative; |
| overflow: scroll; |
| top: 50px; |
| width: 100px; |
| height: 100px; |
| will-change: transform; |
| background-color: salmon; |
| } |
| |
| #tall { |
| width: 50px; |
| height: 500px; |
| background-color: yellow; |
| } |
| |
| #squashed { |
| position: relative; |
| top: -50px; |
| width: 100px; |
| height: 100px; |
| background-color: green; |
| } |
| </style> |
| <div id="stacking"> |
| <div id="clipper"> |
| <div id="composited"> |
| <div id="tall"></div> |
| </div> |
| <div id="squashed"></div> |
| </div> |
| <div> |
| This test passes if it doesn't crash. |
| <script> |
| if (window.testRunner) { |
| testRunner.dumpAsText(); |
| internals.settings.setPreferCompositingToLCDTextEnabled(true); |
| } else { |
| alert('This test require window.testRunner.') |
| } |
| |
| internals.forceCompositingUpdate(document); |
| document.querySelector('#clipper').className = 'clipping'; |
| internals.forceCompositingUpdate(document); |
| document.querySelector('#composited').remove(); |
| internals.forceCompositingUpdate(document); |
| </script> |