Closed Bug 1393239 Opened 7 years ago Closed 2 years ago

Assertion failure: textRun (fail to build textrun?) in [@ LineBreakBefore]

Categories

(Core :: Layout, defect, P3)

defect

Tracking

()

RESOLVED WORKSFORME
Tracking Status
firefox-esr52 --- unaffected
firefox55 --- wontfix
firefox56 --- wontfix
firefox57 --- affected
firefox58 --- affected

People

(Reporter: tsmith, Unassigned)

References

(Blocks 1 open bug)

Details

(Keywords: assertion, testcase)

Attachments

(1 file)

Attached file test_case.html (deleted) —
Assertion failure: textRun (fail to build textrun?), at /src/layout/generic/nsRubyBaseContainerFrame.cpp:82 #0 0x7f33b980cf60 in LineBreakBefore(nsIFrame*, mozilla::gfx::DrawTarget*, nsIFrame*, nsLineList_iterator const*) /src/layout/generic/nsRubyBaseContainerFrame.cpp:82:5 #1 0x7f33b980fa97 in nsRubyBaseContainerFrame::ReflowOneColumn(nsRubyBaseContainerFrame::RubyReflowInput const&, unsigned int, mozilla::RubyColumn const&, nsReflowStatus&) /src/layout/generic/nsRubyBaseContainerFrame.cpp:583:40 #2 0x7f33b980eb5b in nsRubyBaseContainerFrame::ReflowColumns(nsRubyBaseContainerFrame::RubyReflowInput const&, nsReflowStatus&) /src/layout/generic/nsRubyBaseContainerFrame.cpp:477:15 #3 0x7f33b980ded6 in nsRubyBaseContainerFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) /src/layout/generic/nsRubyBaseContainerFrame.cpp:389:11 #4 0x7f33b97c4b53 in nsLineLayout::ReflowFrame(nsIFrame*, nsReflowStatus&, mozilla::ReflowOutput*, bool&) /src/layout/generic/nsLineLayout.cpp:921:13 #5 0x7f33b9812d90 in nsRubyFrame::ReflowSegment(nsPresContext*, mozilla::ReflowInput const&, nsRubyBaseContainerFrame*, nsReflowStatus&) /src/layout/generic/nsRubyFrame.cpp:222:29 #6 0x7f33b98125fd in nsRubyFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) /src/layout/generic/nsRubyFrame.cpp:165:5 #7 0x7f33b96b64ba in nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, unsigned int, nsReflowStatus&, nsOverflowContinuationTracker*) /src/layout/generic/nsContainerFrame.cpp:932:14 #8 0x7f33b988716d in nsDateTimeControlFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) /src/layout/forms/nsDateTimeControlFrame.cpp:259:5 #9 0x7f33b97c4b53 in nsLineLayout::ReflowFrame(nsIFrame*, nsReflowStatus&, mozilla::ReflowOutput*, bool&) /src/layout/generic/nsLineLayout.cpp:921:13 #10 0x7f33b97c3c25 in nsInlineFrame::ReflowInlineFrame(nsPresContext*, mozilla::ReflowInput const&, nsInlineFrame::InlineReflowInput&, nsIFrame*, nsReflowStatus&) /src/layout/generic/nsInlineFrame.cpp:797:15 #11 0x7f33b97c2e4b in nsInlineFrame::ReflowFrames(nsPresContext*, mozilla::ReflowInput const&, nsInlineFrame::InlineReflowInput&, mozilla::ReflowOutput&, nsReflowStatus&) /src/layout/generic/nsInlineFrame.cpp:680:7 #12 0x7f33b97c24a6 in nsInlineFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) /src/layout/generic/nsInlineFrame.cpp:459:3 #13 0x7f33b97c4b53 in nsLineLayout::ReflowFrame(nsIFrame*, nsReflowStatus&, mozilla::ReflowOutput*, bool&) /src/layout/generic/nsLineLayout.cpp:921:13 #14 0x7f33b9691ad7 in nsBlockFrame::ReflowInlineFrame(mozilla::BlockReflowInput&, nsLineLayout&, nsLineList_iterator, nsIFrame*, LineReflowStatus*) /src/layout/generic/nsBlockFrame.cpp:4218:15 #15 0x7f33b969033c in nsBlockFrame::DoReflowInlineFrames(mozilla::BlockReflowInput&, nsLineLayout&, nsLineList_iterator, nsFlowAreaRect&, int&, nsFloatManager::SavedState*, bool*, LineReflowStatus*, bool) /src/layout/generic/nsBlockFrame.cpp:4014:5 #16 0x7f33b9688a69 in nsBlockFrame::ReflowInlineFrames(mozilla::BlockReflowInput&, nsLineList_iterator, bool*) /src/layout/generic/nsBlockFrame.cpp:3888:9 #17 0x7f33b9682edb in nsBlockFrame::ReflowLine(mozilla::BlockReflowInput&, nsLineList_iterator, bool*) /src/layout/generic/nsBlockFrame.cpp:2871:5 #18 0x7f33b967a202 in nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowInput&) /src/layout/generic/nsBlockFrame.cpp:2407:7 #19 0x7f33b967537c in nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) /src/layout/generic/nsBlockFrame.cpp:1233:3 #20 0x7f33b968dbba in nsBlockReflowContext::ReflowBlock(mozilla::LogicalRect const&, bool, nsCollapsingMargin&, int, bool, nsLineBox*, mozilla::ReflowInput&, nsReflowStatus&, mozilla::BlockReflowInput&) /src/layout/generic/nsBlockReflowContext.cpp:306:11 #21 0x7f33b9686a45 in nsBlockFrame::ReflowBlockFrame(mozilla::BlockReflowInput&, nsLineList_iterator, bool*) /src/layout/generic/nsBlockFrame.cpp:3519:11 #22 0x7f33b9682e8d in nsBlockFrame::ReflowLine(mozilla::BlockReflowInput&, nsLineList_iterator, bool*) /src/layout/generic/nsBlockFrame.cpp:2868:5 #23 0x7f33b967a202 in nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowInput&) /src/layout/generic/nsBlockFrame.cpp:2407:7 #24 0x7f33b967537c in nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) /src/layout/generic/nsBlockFrame.cpp:1233:3 #25 0x7f33b96b64ba in nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, unsigned int, nsReflowStatus&, nsOverflowContinuationTracker*) /src/layout/generic/nsContainerFrame.cpp:932:14 #26 0x7f33b96b5732 in nsCanvasFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) /src/layout/generic/nsCanvasFrame.cpp:753:5 #27 0x7f33b96b64ba in nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, mozilla::WritingMode const&, mozilla::LogicalPoint const&, nsSize const&, unsigned int, nsReflowStatus&, nsOverflowContinuationTracker*) /src/layout/generic/nsContainerFrame.cpp:932:14 #28 0x7f33b9756359 in nsHTMLScrollFrame::ReflowScrolledFrame(mozilla::ScrollReflowInput*, bool, bool, mozilla::ReflowOutput*, bool) /src/layout/generic/nsGfxScrollFrame.cpp:549:3 #29 0x7f33b97575e2 in nsHTMLScrollFrame::ReflowContents(mozilla::ScrollReflowInput*, mozilla::ReflowOutput const&) /src/layout/generic/nsGfxScrollFrame.cpp:661:3 #30 0x7f33b9759917 in nsHTMLScrollFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) /src/layout/generic/nsGfxScrollFrame.cpp:1037:3 #31 0x7f33b9664e7f in nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, int, int, unsigned int, nsReflowStatus&, nsOverflowContinuationTracker*) /src/layout/generic/nsContainerFrame.cpp:976:14 #32 0x7f33b9664472 in mozilla::ViewportFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&) /src/layout/generic/ViewportFrame.cpp:332:7 #33 0x7f33b94d60fb in mozilla::PresShell::DoReflow(nsIFrame*, bool) /src/layout/base/PresShell.cpp:9340:11 #34 0x7f33b94e36e5 in mozilla::PresShell::ProcessReflowCommands(bool) /src/layout/base/PresShell.cpp:9513:24 #35 0x7f33b94e2d84 in mozilla::PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush) /src/layout/base/PresShell.cpp:4210:11 #36 0x7f33b9477eef in nsRefreshDriver::Tick(long, mozilla::TimeStamp) /src/layout/base/nsRefreshDriver.cpp:1956:16 #37 0x7f33b948114e in mozilla::RefreshDriverTimer::TickRefreshDrivers(long, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&) /src/layout/base/nsRefreshDriver.cpp:307:7 #38 0x7f33b9480f24 in mozilla::RefreshDriverTimer::Tick(long, mozilla::TimeStamp) /src/layout/base/nsRefreshDriver.cpp:328:5 #39 0x7f33b9484515 in mozilla::VsyncRefreshDriverTimer::RunRefreshDrivers(mozilla::TimeStamp) /src/layout/base/nsRefreshDriver.cpp:770:5 #40 0x7f33b94835b6 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::TimeStamp) /src/layout/base/nsRefreshDriver.cpp:683:35 #41 0x7f33b947f527 in mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::ParentProcessVsyncNotifier::Run() /src/layout/base/nsRefreshDriver.cpp:529:20 #42 0x7f33b3bedf4a in nsThread::ProcessNextEvent(bool, bool*) /src/xpcom/threads/nsThread.cpp:1040:14 #43 0x7f33b3bf3010 in NS_ProcessNextEvent(nsIThread*, bool) /src/xpcom/threads/nsThreadUtils.cpp:521:10 #44 0x7f33b47534e5 in mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*) /src/ipc/glue/MessagePump.cpp:97:21 #45 0x7f33b46a4897 in MessageLoop::RunInternal() /src/ipc/chromium/src/base/message_loop.cc:326:10 #46 0x7f33b46a4729 in MessageLoop::Run() /src/ipc/chromium/src/base/message_loop.cc:299:3 #47 0x7f33b8f7711a in nsBaseAppShell::Run() /src/widget/nsBaseAppShell.cpp:158:27 #48 0x7f33bc164ea1 in nsAppStartup::Run() /src/toolkit/components/startup/nsAppStartup.cpp:288:30 #49 0x7f33bc2c9a82 in XREMain::XRE_mainRun() /src/toolkit/xre/nsAppRunner.cpp:4646:22 #50 0x7f33bc2cb6ca in XREMain::XRE_main(int, char**, mozilla::BootstrapConfig const&) /src/toolkit/xre/nsAppRunner.cpp:4810:8 #51 0x7f33bc2cc5b8 in XRE_main(int, char**, mozilla::BootstrapConfig const&) /src/toolkit/xre/nsAppRunner.cpp:4905:21 #52 0x4ecb38 in do_main(int, char**, char**) /src/browser/app/nsBrowserApp.cpp:236:22 #53 0x4ec450 in main /src/browser/app/nsBrowserApp.cpp:309:16 #54 0x7f33d2aa182f in __libc_start_main /build/glibc-bfm8X4/glibc-2.23/csu/../csu/libc-start.c:291 #55 0x41e184 in _start (/home/user/workspace/browsers/m-c-1503498612-asan-debug/firefox+0x41e184)
Flags: in-testsuite?
Priority: -- → P3
Looks like the <ruby> is inside an <input>. I think it makes sense that text run cannot be created in that case. The question would actually be why the frame is created at all.
Initial regression range: INFO: Last good revision: 001d49708a355c9b127fc338722959874cfc7552 INFO: First bad revision: 7abafd0fead900aec67b0de342f71ec856f561cf INFO: Pushlog: https://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=001d49708a355c9b127fc338722959874cfc7552&tochange=7abafd0fead900aec67b0de342f71ec856f561cf So it was enabling dom.forms.datetime by default that first exposed this assertion. Re-bisecting with the pref manually enabled was a dead-end, unfortunately, as it just wound up on when the datetime code first landed (bug 1286182). But maybe that at least helps point to an answer to the question in comment 1?
Blocks: 1366188
Has Regression Range: --- → yes
Severity: normal → S3

The fuzzers have not reported this since before 2018. Let's close this and reopen if needed.

Status: NEW → RESOLVED
Closed: 2 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: