<!DOCTYPE html> <!-- webkit-test-runner [ AsyncOverflowScrollingEnabled=true ] -->
<html>
<head>
    <title>Scrolling tree should show slow-repaint reasons on the overflow and root nodes</title>
    <style>
        .scroller {
            background-color: silver;
            border: 1px solid black;
            padding: 10px;
            width: 400px;
            height: 300px;
            overflow: scroll;
        }
        
        .relative {
            position: relative;
        }
        .scroller .scroller {
            margin-top: 100px;
            width: 350px;
            height: 300px;
        }
        
        .scrolling-content {
            height: 1000px;
        }
        
        .fixed-background {
            margin-top: 100px;
            width: 400px;
            height: 300px;
            background-image: linear-gradient(green, blue);
            background-attachment: fixed;
        }
        .filler {
            width: 100px;
            height: 250px;
        }
    </style>
    <script>
        if (window.testRunner)
            testRunner.dumpAsText();

        window.addEventListener('load', () => {
            if (window.internals)
                document.getElementById('scrollingTree').innerText = window.internals.scrollingTreeAsText() + "\n";
        }, false);
    </script>
</head>
<body>
    <div class="scroller">
        <div class="scrolling-content">
            Outer scrolling content
            <div class="relative">
                <div class="scroller">
                    <div class="scrolling-content">
                        Inner scrolling content
                        <div class="fixed-background">
                            Fixed background
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
    <pre id="scrollingTree"></pre>
</body>
</html>
