Open Bug 571959 Opened 11 years ago Updated 9 years ago

"ASSERTION: Why is the root in mDirtyRoots already?" with audio in iframe

Categories

(Core :: Layout, defect)

x86
macOS
defect
Not set
normal

Tracking

()

People

(Reporter: jruderman, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(1 file, 1 obsolete file)

223 bytes, text/html
Details
Attached file testcase (obsolete) —
###!!! ASSERTION: Why is the root in mDirtyRoots already?: '!mDirtyRoots.Contains(rootFrame)', file /builds/moz2_slave/mozilla-central-macosx-debug/build/layout/base/nsPresShell.cpp, line 2654
All we need is an <audio controls> element in an iframe in a plain html document to trigger this.

In PresShell::InitialReflow for the iframe we run the XBL constructors for the video controls (videocontrols.xml) this causes some frame reconstructs to be posted in the video controls and some flushes and when we do the insert for the reconstruct we get a FrameNeedsReflow for a frame whose reflow root is the rootframe.

I don't know if there is anything we can do to stop XBL constructors from making the root frame dirty.
There isn't.  Perhaps that assertion is just wrong and should be removed....
Attached file testcase 2
Attachment #451113 - Attachment is obsolete: true
I can't reproduce this with the attached test case any more, but I'm still seeing this assertion from time to time.
Depends on: 688044
You need to log in before you can comment on or make changes to this bug.