This code comes all the way back from bug 480979. What happens here is as follows: * There are two table-column items, with their relevant anonymous wrapper. Why the page uses `display: table-column` for this escapes my understanding. * We insert the header next to them. We compute the parent frame to be the (anonymous) nsTableColumnGroup frame, because it's our sibling's parent. * We decide you're not a column, and thus you get suppressed. We don't create FrameConstructionItems for it. * We don't realize in WipeContainingBlock that things went wrong, and fail miserably. Fortunately we can tweak this to perform the suppression later in the pipeline. Differential Revision: https://phabricator.services.mozilla.com/D295265
32 lines
888 B
HTML
32 lines
888 B
HTML
<!doctype html>
|
|
<link rel="help" href="https://bugzilla.mozilla.org/show_bug.cgi?id=2033384">
|
|
<link rel="help" href="https://drafts.csswg.org/css-tables/#content-model">
|
|
<link rel="match" href="insert-after-col-ref.html">
|
|
<title>Insertion of a block after a display:table-column element</title>
|
|
<style>
|
|
.hide-desktop {
|
|
width: 0 !important;
|
|
height: 0 !important;
|
|
padding: 0 !important;
|
|
visibility: hidden !important;
|
|
margin: 0 !important;
|
|
display: table-column !important;
|
|
background: 0 !important;
|
|
content-visibility: hidden;
|
|
overflow: hidden !important;
|
|
}
|
|
.header {
|
|
height: 100px;
|
|
background-color: green;
|
|
}
|
|
</style>
|
|
<div id="container">
|
|
<div class="hide-desktop">Something something</div>
|
|
</div>
|
|
<script>
|
|
container.getBoundingClientRect();
|
|
let header = document.createElement("div");
|
|
header.className = "header";
|
|
container.appendChild(header);
|
|
</script>
|