<!DOCTYPE html> <!-- webkit-test-runner [ AsyncOverflowScrollingEnabled=true ] -->
<html>
<style>
.event {
    position:relative;
    background-color:blue;
    width:200px;
    height:200px;
}
.child {
    position:relative;
    background-color:blue;
    left:200px;
    width:50px;
    height:50px;
}
.offset {
    left: 200px;
}

</style>
<script>
if (window.testRunner)
    testRunner.dumpAsText();

window.onload = () => {
    document.body.offsetLeft;

    function listener() {
        results.textContent += 'wheel\n';
    }
    active.addEventListener("wheel", listener);

    let log = "";
    if (window.internals)
        log += internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_EVENT_REGION | internals.LAYER_TREE_INCLUDES_ROOT_LAYER_PROPERTIES);

    active.removeEventListener('wheel', listener);
    passive.addEventListener('wheel', () => { results.textContent += 'passive wheel\n' }, { passive: true });

    if (window.internals)
        log += internals.layerTreeAsText(document, internals.LAYER_TREE_INCLUDES_EVENT_REGION | internals.LAYER_TREE_INCLUDES_ROOT_LAYER_PROPERTIES);

    results.textContent = log;
}
</script>
<body>
<div class="event" id="active">
    <div class="child"></div>
</div>
<div class="event offset" id="passive">
    <div class="child"></div>
</div>
<pre id="results"></pre>
</body>
</html>
