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
(Keywords: leave-open)
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•1 year ago
|
Assignee | ||
Updated•1 year ago
|
Assignee | ||
Comment 11•1 year 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 year 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) |
Description
•