<!DOCTYPE html>
<html>
<head>
    <script src="resources/repaint.js" type="text/javascript"></script>
    <script>
    function repaintTest() {
        // Now scroll once in the #innerDiv to the green area.
        if (window.eventSender)
            eventSender.mouseScrollBy(0, -10);
    }
    window.addEventListener("load", runRepaintTest, false);
    </script>
</head>
<body>
<!-- Bug 71550 - REGRESSION (r93614): Content remains despite parent element being scrolled off page using javascript. -->
<!-- For the test to pass you should not see any RED or PURPLE, only green -->
<div style="height: 300px; overflow-y: auto;" id="outerDiv">
    <div style="height: 300px; background: purple;"></div>
    <div style="height: 400px; overflow-y: auto;" id="innerDiv">
        <div style="height: 400px; width: 300px; background: red"></div>
        <div style="height: 400px; width: 300px; background: green"></div>
    </div>
</div>
<script>
if (window.eventSender) {
    testRunner.dumpAsText(true);

    // Scroll the #outerDiv until we reach the #innerDiv.
    eventSender.mouseMoveTo(50, 50);
    eventSender.mouseScrollBy(0, -8);
} else {
    document.write("This test is better run under DumpRenderTree. To manually test it, continuously scroll down on the top-most element. There should be no repaint issue.");
}
</script>
</body>
</html>
