<!DOCTYPE html> <!-- webkit-test-runner [ AsyncOverflowScrollingEnabled=true ] -->
<html>
<style>
.testdiv {
    display: inline-block;
    box-sizing: border-box;
    border: 2px solid blue;
    position: relative;
    height: 200px;
    width: 200px;
    will-change: transform;
}
.scroller {
    overflow: scroll;
    height: 50px;
    width: 50px;
}
.scrollcontent {
    height: 100px;
    width: 50px;
}
</style>
<script>
window.onload = function () {
    if (window.testRunner)
        testRunner.dumpAsText();

    const properties = [ 'border-top-left-radius', 'border-top-right-radius', 'border-bottom-left-radius', 'border-bottom-right-radius' ];
    const values = [ '5px', '20px', '50px', '200px', '40px 150px', '50px 20px'];

    for (const property of properties) {
        for (const value of values) {
            const div = document.createElement("div");
            div.setAttribute("class", "testdiv");
            div.setAttribute("style", property + ": " + value);
            document.body.appendChild(div);
        }
    }

    if (window.internals)
        results.innerText = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_EVENT_REGION);
}
</script>
<body>
<div class="scroller"><div class="scrollcontent"></div></div>
<pre id="results"></pre>
</body>
</html>

