<!DOCTYPE html>
<html>
<head>
<title>This tests that we set the correct flow states for positioned inline descendants.</title>
<style>
div {
    column-count: 2;
}

video {
    position: fixed;
}
</style>
<script>
function runTest() {
    if (window.testRunner) {
        testRunner.dumpAsText();
        testRunner.waitUntilDone();
    }
    document.body.offsetHeight;
    setTimeout(function() {
        div.style.columnCount = "auto";
        document.body.offsetHeight;
        if (window.testRunner)
            testRunner.notifyDone();
    }, 0);
}
</script>
</head>
<body onload="runTest()">
PASS if no crash or assert.
<div id=div><video><track></video></div>
</body>
</html>
