Open Bug 1258012 Opened 9 years ago Updated 2 years ago

"ASSERTION: incompatible writing modes" with display:contents

Categories

(Core :: CSS Parsing and Computation, defect)

defect

Tracking

()

Tracking Status
firefox48 --- affected

People

(Reporter: jruderman, Unassigned)

References

(Depends on 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Attached file testcase
###!!! ASSERTION: incompatible writing modes: '(aWM).GetBlockDir() == mWritingMode.GetBlockDir()', file layout/generic/nsFloatManager.cpp, line 127
Attached file stack
I've debugged this and it's the same underlying problem as in bug 1252709. In this case, we ignore the nsChangeHint_ReconstructFrame that we get from nsStyleVisibility::CalcDifference when mDirection changes. If we would have recreated the frame (as we do without the display:contents), then nsBlockFrame::Init would now make the <p> a float containing block because it has orthogonal block flow direction to its parent frame. http://mxr.mozilla.org/mozilla-central/source/layout/generic/nsBlockFrame.cpp#6801 But since we didn't, <html> is still the float manager which leads to the assertion.
Component: Layout: Text → CSS Parsing and Computation
Depends on: 1252709
Fwiw, the "wip" patch in that bug seems to fix this and the layout looks correct to me. I don't know what the real fix should be for that bug though.
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: