<!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 an assertion failure when performing a partial 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='display: none; overflow-y: scroll; width: 100px;'></div>
        </div>
        <script>
        window.setTimeout(function () {
            var scrollableDiv = document.getElementById('scrollableDiv');
            scrollableDiv.innerHTML = 'Supercalifragilisticexpialidocious'; /* A string that cannot be word-wrapped and exceeds the width of the scrollableDiv. */
            scrollableDiv.style.display = 'block';
            window.parent.done();
        }, 0);
        </script>
    "></iframe>
</div>
<pre id="console">FAIL</pre>
</body>
</html>
