<!DOCTYPE html> <!-- webkit-test-runner [ AsyncOverflowScrollingEnabled=true ] -->
<html>
<head>
    <style>
        .relative {
            position: absolute;
            top: 20px;
            left: 20px;
            height: 10px;
            width: 10px;
            margin: 10px;
            border: 1px solid black;
        }
        
        .sharing {
			position: relative;
			top: 50px;
			left: 50px;
            width: 200px;
            height: 200px;
            background-color: green;
            transform: scale(0.5);
            transform-origin: top left;
        }
        
        .inner {
            position: absolute;
            left: 200px;
            top: 200px;
            width: 100px;
            height: 100px;
            background-color: blue;
        }

        .trigger {
            transform: translateZ(0);
            width: 500px;
            height: 500px;
            background-color: silver;
        }
        .scroller {
            overflow: scroll;
            height: 50px;
            width: 50px;
        }
        .scrollcontent {
            height: 100px;
            width: 50px;
        }
    </style>
    <script>
        if (window.testRunner)
            testRunner.dumpAsText();

        window.addEventListener('load', () => {
            if (window.internals)
                document.getElementById('layers').textContent = internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_EVENT_REGION);
        }, false);
    </script>
</head>
<body>
    <div class="trigger"></div>
    <div class="relative">
        <div class="sharing">
            <div class="inner">
            </div>
        </div>
    </div>
    <div class="scroller"><div class="scrollcontent"></div></div>
<pre id="layers"></pre>
</body>
</html>
