Assertion failure: mFloats.ContainsFrame(nif)
Categories
(Core :: Layout, defect, P3)
Tracking
()
People
(Reporter: violet.bugreport, Assigned: MatsPalmgren_bugz)
Details
(Keywords: assertion, testcase)
Attachments
(3 files, 1 obsolete file)
Open the testcase to see the assertion failure.
Reporter | ||
Comment 1•5 years ago
|
||
Let |F| be an nsBlockFrame with float |f| in its pushed float list,
let |F1| be the prev-in-flow of |F|, let |f2| be the prev-prev-in-flow
of |f| which is inside |F1|.
If at this point, |F1| restarts a reflow without the next-in-flow of
|F| having the chance to reflow, and the restarted reflow makes |f2|
overflow w.r.t |F1|. Then |nif| will still be inside the pushed float
list of |F|. The original assertion is incorrect in this sense.
Assignee | ||
Comment 2•5 years ago
|
||
Here's the relevant frames before / after the ASSERTION.
So, if we just update the assertion as suggested we end
up with a PushedFloatsList float that doesn't have
the NS_FRAME_IS_PUSHED_FLOAT bit set. (My gut feeling
is that this frame tree is wrong. Maybe we should move
these to mFloats too?)
(I've highlighted the PUSHED_FLOAT bit in the state.)
Updated•5 years ago
|
Reporter | ||
Comment 3•5 years ago
|
||
Gentle ping... In case the patch update was missed....
Assignee | ||
Comment 4•5 years ago
|
||
I think pushing the existing float continuations forward
might be a better approach (i.e. moving them from mFloats
to the PushedFloat list). Removing and inserting frames
into a frame list is O(1). Like so:
https://treeherder.mozilla.org/#/jobs?repo=try&revision=2dd76a5301235386b29454b8e737cf9c3c41acdc
I think that should satisfy the invariants we have regarding
pushed floats.
Assignee | ||
Comment 5•5 years ago
|
||
Pushed by mpalmgren@mozilla.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/bbb4e0b30b6e When we pull in floats from a prev-in-flow then move any next-in-flows of those that we own to our PushedFloat list. r=dholbert
Assignee | ||
Updated•5 years ago
|
Comment 7•5 years ago
|
||
bugherder |
Updated•5 years ago
|
Updated•5 years ago
|
Description
•