Top-layer elements could cause 'ASSERTION: Out-of-flow frame got reflowed before its placeholder'
Categories
(Core :: Layout, enhancement)
Tracking
()
People
(Reporter: cathiechen, Assigned: cathiechen)
References
Details
Attachments
(1 file, 1 obsolete file)
User Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
Steps to reproduce:
It causes assertions on popovers/popover-open-overflow-display.html.
This could also be reproduced by dialog
.
<!DOCTYPE html>
<div id=container>
<dialog id=p1>This is dialog 1</dialog>
</div>
<style>
#container {
position: absolute;
top: 100px;
left: 50px;
width: 30px;
height: 30px;
}
#p1 {
position: absolute;
top: 100px;
}
</style>
<script>
document.querySelector('#p1').showModal();
</script>
Updated•2 years ago
|
Assignee | ||
Comment 1•2 years ago
|
||
In the AbsoluteList
, p1
is in front of container
, so p1
reflows before container
, and p1
is outOfFlowFrame
of container
, so it triggers assertion when reflow container
.
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 2•2 years ago
|
||
Depends on D175395
Updated•2 years ago
|
Assignee | ||
Updated•2 years ago
|
Comment 7•2 years ago
|
||
Why was this bug moved to 'Applied Machine Learning' ?
Updated•2 years ago
|
Assignee | ||
Updated•2 years ago
|
Assignee | ||
Comment 11•2 years ago
|
||
css/css-contain/content-visibility/content-visibility-with-top-layer-in-auto-subtree-removal.html also could reproduce this assertion: 'ASSERTION: out-of-flow frame got reflowed before its placeholde'.
Updated•1 years ago
|
Comment 16•1 year ago
|
||
Cathie, so I checked your patch, without your code changes, and I only get one assert, which is the "absolute popover inside fixed element". Could you elaborate on your other changes?
Sorry for the lag getting to this btw, I didn't understand some of your changes and that got me confused for a while.
Assignee | ||
Comment 17•1 year ago
|
||
Hi Emilio! Sorry about the confusion!
The patch actually contains two parts:
- The test popover-open-overflow-display-2.html, the "absolute popover inside fixed element" case generates an assert which is not fixed.
- To fix the assert generate by reflow boundary elements with top layer children. When the top layer child needs reflow, it would mark dirty flag to root through top layer fixed list, to containing block, to root. And it also marks dirty flag to the reflow boundary frame which is through its placeholder. So there are two reflow request, one is root, the other one is the reflow boundary frame. The root will always be reflowed first. So the frame in top layer fixed list will be reflowed before its placeholder.
Let me split this patch into two. Hope it would make the questions clear.
Updated•1 year ago
|
Assignee | ||
Comment 18•1 year ago
|
||
Updated•1 year ago
|
Comment 19•1 year ago
|
||
Comment 21•1 year ago
|
||
bugherder |
Updated•1 year ago
|
Comment hidden (obsolete) |
Comment hidden (obsolete) |
Comment hidden (Intermittent Failures Robot) |
Comment 28•22 days ago
|
||
The leave-open keyword is there and there is no activity for 6 months.
:dholbert, maybe it's time to close this bug?
For more information, please visit BugBot documentation.
Comment 29•22 days ago
|
||
leave-open was just to prevent auto-closing from the patch that landed (which was just adding a test).
We can remove the leave-open keyword now (and still leave the bug open).
Description
•