Open Bug 1406461 Opened 3 years ago Updated 2 years ago

Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Do we have any other type of line container?) [@ InlineBackgroundData::AreOnSameLine]

Categories

(Core :: CSS Parsing and Computation, defect, P3)

defect

Tracking

()

Tracking Status
firefox-esr52 --- disabled
firefox56 --- wontfix
firefox57 --- wontfix
firefox58 --- wontfix
firefox59 --- ?

People

(Reporter: tsmith, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(2 files)

Attached file test_case.html
Assertion failure: false (MOZ_ASSERT_UNREACHABLE: Do we have any other type of line container?), at /src/layout/painting/nsCSSRendering.cpp:416

#0 InlineBackgroundData::AreOnSameLine(nsIFrame*, nsIFrame*) /src/layout/painting/nsCSSRendering.cpp:416:5
#1 InlineBackgroundData::SetFrame(nsIFrame*) /src/layout/painting/nsCSSRendering.cpp:284:38
#2 InlineBackgroundData::GetContinuousRect(nsIFrame*) /src/layout/painting/nsCSSRendering.cpp:105:5
#3 InlineBackgroundData::GetBorderContinuousRect(nsIFrame*, nsRect) /src/layout/painting/nsCSSRendering.cpp:194:39
#4 JoinBoxesForSlice(nsIFrame*, nsRect const&, InlineBoxOrder) /src/layout/painting/nsCSSRendering.cpp:560:30
#5 BoxDecorationRectForBorder(nsIFrame*, nsRect const&, mozilla::Sides, nsStyleBorder const*) /src/layout/painting/nsCSSRendering.cpp:584:14
#6 nsCSSRendering::GetImageLayerClip(nsStyleImageLayers::Layer const&, nsIFrame*, nsStyleBorder const&, nsRect const&, nsRect const&, bool, int, nsCSSRendering::ImageLayerClipState*) /src/layout/painting/nsCSSRendering.cpp:2203:5
#7 SetBackgroundClipRegion(mozilla::DisplayListClipState::AutoSaveRestore&, nsIFrame*, nsPoint const&, nsStyleImageLayers::Layer const&, nsRect const&, bool) /src/layout/painting/nsDisplayList.cpp:3149:3
#8 nsDisplayBackgroundImage::AppendBackgroundItemsToTop(nsDisplayListBuilder*, nsIFrame*, nsRect const&, nsDisplayList*, bool, nsStyleContext*, nsRect const&, nsIFrame*) /src/layout/painting/nsDisplayList.cpp:3336:7
#9 nsFrame::DisplayBackgroundUnconditional(nsDisplayListBuilder*, nsDisplayListSet const&, bool) /src/layout/generic/nsFrame.cpp:2111:12
#10 nsFrame::DisplayBorderBackgroundOutline(nsDisplayListBuilder*, nsDisplayListSet const&, bool) /src/layout/generic/nsFrame.cpp:2135:21
#11 nsContainerFrame::BuildDisplayListForInline(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/nsContainerFrame.h:585:5
#12 nsInlineFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/nsInlineFrame.cpp:243:3
#13 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3240:14
#14 nsContainerFrame::BuildDisplayListForNonBlockChildren(nsDisplayListBuilder*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsContainerFrame.cpp:380:5
#15 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3255:12
#16 DisplayLine(nsDisplayListBuilder*, nsRect const&, nsLineList_iterator&, int, int&, nsDisplayListSet const&, nsBlockFrame*, mozilla::css::TextOverflow*, unsigned int) /src/layout/generic/nsBlockFrame.cpp:6716:13
#17 nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/nsBlockFrame.cpp:6811:7
#18 nsIFrame::BuildDisplayListForChild(nsDisplayListBuilder*, nsIFrame*, nsDisplayListSet const&, unsigned int) /src/layout/generic/nsFrame.cpp:3240:14
#19 DisplayLine(nsDisplayListBuilder*, nsRect const&, nsLineList_iterator&, int, int&, nsDisplayListSet const&, nsBlockFrame*, mozilla::css::TextOverflow*, unsigned int) /src/layout/generic/nsBlockFrame.cpp:6716:13
#20 nsBlockFrame::BuildDisplayList(nsDisplayListBuilder*, nsDisplayListSet const&) /src/layout/generic/nsBlockFrame.cpp:6811:7
...
see log.txt for full stack
Flags: in-testsuite?
Attached file log.txt
This seems to reproduce without stylo enabled, so not putting this on the stylo radar.
INFO: Last good revision: 3856bf7772abc14225168cc027e6b95e0df10e00
INFO: First bad revision: d0be8b2713f47e02a06f5549915bafbd35d12acf
INFO: Pushlog:
https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=3856bf7772abc14225168cc027e6b95e0df10e00&tochange=d0be8b2713f47e02a06f5549915bafbd35d12acf

So this is basically similar to bug 1393239. I don't know if there's a way to revise the testcase to tickle this assert without relying on the time picker or not.
Blocks: 1288591
Has Regression Range: --- → yes
See Also: → 1406511
Priority: -- → P3
You need to log in before you can comment on or make changes to this bug.