<!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>