blob: 0f481c9a2bf6a39c4d6066b8b7f54db66b329fda [file] [log] [blame]
<!DOCTYPE html>
<html>
<style>
.colContainer { -webkit-column-count: 0; }
.absolutePosition { position: absolute; }
.colSpanAll { -webkit-column-span: all; }
.transformed { transform: rotate(45deg); }
.hidden { display:none; }
.normal { display:block;}
</style>
<script>
window.onload = function() {
columnContainerBlock = document.createElement('div');
columnContainerBlock.setAttribute('class', 'colContainer');
document.documentElement.appendChild(columnContainerBlock);
splitBlockParent = document.createElement('div');
splitBlockParent.setAttribute('class', 'transformed');
columnContainerBlock.appendChild(splitBlockParent);
splitFlowDt = document.createElement('dt');
splitBlockParent.appendChild(splitFlowDt);
positionedDiv = document.createElement('div');
positionedDiv.setAttribute('class', 'absolutePosition');
splitBlockParent.appendChild(positionedDiv);
columnSpan = document.createElement('col');
columnSpan.setAttribute('class', 'colSpanAll');
splitFlowDt.appendChild(columnSpan); // Inserting the col inside the dt causes it to get split.
document.documentElement.offsetHeight;
splitFlowDt.setAttribute('class', 'hidden'); // This removes the split dt and the col from the render tree.
document.documentElement.offsetHeight;
splitFlowDt.setAttribute('class', 'normal'); // Re-adding the dt causes the flow to split again.
document.documentElement.offsetHeight;
splitBlockParent.removeChild(positionedDiv); // Remove the positioned object from the tree.
document.documentElement.offsetHeight;
splitBlockParent.removeChild(splitFlowDt); // Ensure the node with the bad positioned object list gets layout.
if (window.testRunner)
testRunner.dumpAsText();
}
</script>
<body>
PASS if no assert or crash in debug
</body>
</html>