<!DOCTYPE html>
<html>
<head>
<script>
if (window.testRunner) {
    testRunner.dumpAsText();
    testRunner.waitUntilDone();
}

if (window.internals)
    internals.settings.setFrameFlattening("FullyEnabled")

function done()
{
    document.getElementById("console").innerText = "PASS";
    if (window.testRunner)
        testRunner.notifyDone();
}
</script>
</head>
<body>
<p>This tests that we don't cause a crash when performing a full repaint of an &lt;iframe&gt; with zero height, enclosed in a flex box, whose content document contains a flex box with a child scrollable &lt;div&gt;.</p>
<div id="test-container" style="display: -webkit-flex; -webkit-flex-direction: column; height: 512px;">
    <iframe style="width: 100%; overflow: hidden" height="0" srcdoc="
        <div style='display: -webkit-flex; -webkit-flex-direction: column; height: 128px; width: 128px; background-color: blue'>
            <div id='scrollableDiv' style='overflow-y: scroll; outline: none; width: 10px; height: 10px; -webkit-flex: 1;'>
                <br><br><br><br><br><br><br><br><br>Lorem ipsum
            </div>
        </div>
        <script>
        document.getElementById('scrollableDiv').scrollTop = 108;
        window.parent.done();
        </script>
    "></iframe>
</div>
<pre id="console">FAIL</pre>
</body>
</html>
