<!DOCTYPE html> <!-- webkit-test-runner [ internal:AsyncOverflowScrollingEnabled=true ] -->
<html>
<head>
    <title>
        Check that overflow is nested inside fixed
    </title>
    <script>
        if (window.testRunner)
            testRunner.dumpAsText();

        function doTest() {
            if (window.internals)
                document.getElementById('scrollingTree').innerText = window.internals.scrollingStateTreeAsText() + "\n";

            if (window.testRunner)
                testRunner.notifyDone();
        }

        window.addEventListener('load', doTest, false);
    </script>
    <style>
        .fixed {
            position: fixed;
            background-color: silver;
            width: 400px;
            height: 300px;
            overflow: scroll;
        }
        
        .scrolling-content {
            height: 1000px;
        }
    </style>
</head>
<body>
    <div class="fixed">
        <div class="scrolling-content">Scrolling content</div>
    </div>
    <pre id="scrollingTree"></pre>
</body>
</html>
