Assertion failure: mTextRun->GetFlags2() & nsTextFrameUtils::Flags::IsTransformed (Text run should be transformed!), atsrc/layout/generic/nsTextFrame.cpp:1075
Categories
(Core :: Layout: Text and Fonts, defect, P3)
Tracking
()
Tracking | Status | |
---|---|---|
firefox69 | --- | affected |
People
(Reporter: tsmith, Unassigned)
References
(Blocks 1 open bug)
Details
(Keywords: assertion, testcase)
Attachments
(1 file)
261 bytes,
text/html
|
Details |
Reduced with m-c:
BuildID=20190528101320
SourceStamp=5cc220ddf028de011a922042ee9ba691b94d055d
This may be a dup of bug 1441254 but this has a working test case.
Assertion failure: mTextRun->GetFlags2() & nsTextFrameUtils::Flags::IsTransformed (Text run should be transformed!), atsrc/layout/generic/nsTextFrame.cpp:1075
#0 BuildTextRunsScanner::BreakSink::SetCapitalization(unsigned int, unsigned int, bool*)src/layout/generic/nsTextFrame.cpp:1074:7
#1 nsLineBreaker::AppendText(nsAtom*, char16_t const*, unsigned int, unsigned int, nsILineBreakSink*)src/dom/base/nsLineBreaker.cpp:306:14
#2 nsLineBreaker::AppendText(nsAtom*, unsigned char const*, unsigned int, unsigned int, nsILineBreakSink*)src/dom/base/nsLineBreaker.cpp:339:12
#3 BuildTextRunsScanner::SetupBreakSinksForTextRun(gfxTextRun*, void const*)src/layout/generic/nsTextFrame.cpp:2693:22
#4 BuildTextRunsScanner::SetupLineBreakerContext(gfxTextRun*)src/layout/generic/nsTextFrame.cpp:2569:3
#5 BuildTextRunsScanner::FlushFrames(bool, bool)src/layout/generic/nsTextFrame.cpp:1622:12
#6 BuildTextRunsScanner::ScanFrame(nsIFrame*)src/layout/generic/nsTextFrame.cpp:1966:9
#7 BuildTextRunsScanner::ScanFrame(nsIFrame*)src/layout/generic/nsTextFrame.cpp:2020:5
#8 BuildTextRunsScanner::ScanFrame(nsIFrame*)src/layout/generic/nsTextFrame.cpp:2020:5
#9 BuildTextRunsScanner::ScanFrame(nsIFrame*)src/layout/generic/nsTextFrame.cpp:2020:5
#10 BuildTextRuns(mozilla::gfx::DrawTarget*, nsTextFrame*, nsIFrame*, nsLineList_iterator const*, nsTextFrame::TextRunType)src/layout/generic/nsTextFrame.cpp:1540:15
#11 nsTextFrame::EnsureTextRun(nsTextFrame::TextRunType, mozilla::gfx::DrawTarget*, nsIFrame*, nsLineList_iterator const*, unsigned int*)src/layout/generic/nsTextFrame.cpp:2900:7
#12 nsTextFrame::ReflowText(nsLineLayout&, int, mozilla::gfx::DrawTarget*, mozilla::ReflowOutput&, nsReflowStatus&)src/layout/generic/nsTextFrame.cpp:8906:7
#13 nsLineLayout::ReflowFrame(nsIFrame*, nsReflowStatus&, mozilla::ReflowOutput*, bool&)src/layout/generic/nsLineLayout.cpp:880:40
#14 nsInlineFrame::ReflowInlineFrame(nsPresContext*, mozilla::ReflowInput const&, nsInlineFrame::InlineReflowInput&, nsIFrame*, nsReflowStatus&)src/layout/generic/nsInlineFrame.cpp:674:15
#15 nsInlineFrame::ReflowFrames(nsPresContext*, mozilla::ReflowInput const&, nsInlineFrame::InlineReflowInput&, mozilla::ReflowOutput&, nsReflowStatus&)src/layout/generic/nsInlineFrame.cpp:548:7
#16 nsInlineFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)src/layout/generic/nsInlineFrame.cpp:363:3
#17 nsLineLayout::ReflowFrame(nsIFrame*, nsReflowStatus&, mozilla::ReflowOutput*, bool&)src/layout/generic/nsLineLayout.cpp:877:13
#18 nsInlineFrame::ReflowInlineFrame(nsPresContext*, mozilla::ReflowInput const&, nsInlineFrame::InlineReflowInput&, nsIFrame*, nsReflowStatus&)src/layout/generic/nsInlineFrame.cpp:674:15
#19 nsInlineFrame::ReflowFrames(nsPresContext*, mozilla::ReflowInput const&, nsInlineFrame::InlineReflowInput&, mozilla::ReflowOutput&, nsReflowStatus&)src/layout/generic/nsInlineFrame.cpp:548:7
#20 nsInlineFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)src/layout/generic/nsInlineFrame.cpp:363:3
#21 nsLineLayout::ReflowFrame(nsIFrame*, nsReflowStatus&, mozilla::ReflowOutput*, bool&)src/layout/generic/nsLineLayout.cpp:877:13
#22 nsInlineFrame::ReflowInlineFrame(nsPresContext*, mozilla::ReflowInput const&, nsInlineFrame::InlineReflowInput&, nsIFrame*, nsReflowStatus&)src/layout/generic/nsInlineFrame.cpp:674:15
#23 nsInlineFrame::ReflowFrames(nsPresContext*, mozilla::ReflowInput const&, nsInlineFrame::InlineReflowInput&, mozilla::ReflowOutput&, nsReflowStatus&)src/layout/generic/nsInlineFrame.cpp:548:7
#24 nsInlineFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)src/layout/generic/nsInlineFrame.cpp:363:3
#25 nsLineLayout::ReflowFrame(nsIFrame*, nsReflowStatus&, mozilla::ReflowOutput*, bool&)src/layout/generic/nsLineLayout.cpp:877:13
#26 nsBlockFrame::ReflowInlineFrame(mozilla::BlockReflowInput&, nsLineLayout&, nsLineList_iterator, nsIFrame*, LineReflowStatus*)src/layout/generic/nsBlockFrame.cpp:4336:15
#27 nsBlockFrame::DoReflowInlineFrames(mozilla::BlockReflowInput&, nsLineLayout&, nsLineList_iterator, nsFlowAreaRect&, int&, nsFloatManager::SavedState*, bool*, LineReflowStatus*, bool)src/layout/generic/nsBlockFrame.cpp:4138:5
#28 nsBlockFrame::ReflowInlineFrames(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)src/layout/generic/nsBlockFrame.cpp:4023:9
#29 nsBlockFrame::ReflowLine(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)src/layout/generic/nsBlockFrame.cpp:3055:5
#30 nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowInput&)src/layout/generic/nsBlockFrame.cpp:2594:7
#31 nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)src/layout/generic/nsBlockFrame.cpp:1334:3
#32 nsBlockReflowContext::ReflowBlock(mozilla::LogicalRect const&, bool, nsCollapsingMargin&, int, bool, nsLineBox*, mozilla::ReflowInput&, nsReflowStatus&, mozilla::BlockReflowInput&)src/layout/generic/nsBlockReflowContext.cpp:297:11
#33 nsBlockFrame::ReflowBlockFrame(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)src/layout/generic/nsBlockFrame.cpp:3660:11
#34 nsBlockFrame::ReflowLine(mozilla::BlockReflowInput&, nsLineList_iterator, bool*)src/layout/generic/nsBlockFrame.cpp:3052:5
#35 nsBlockFrame::ReflowDirtyLines(mozilla::BlockReflowInput&)src/layout/generic/nsBlockFrame.cpp:2594:7
#36 nsBlockFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)src/layout/generic/nsBlockFrame.cpp:1334:3
#37 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:893:14
#38 nsCanvasFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)src/layout/generic/nsCanvasFrame.cpp:730:5
#39 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:893:14
#40 nsHTMLScrollFrame::ReflowScrolledFrame(mozilla::ScrollReflowInput*, bool, bool, mozilla::ReflowOutput*)src/layout/generic/nsGfxScrollFrame.cpp:562:3
#41 nsHTMLScrollFrame::ReflowContents(mozilla::ScrollReflowInput*, mozilla::ReflowOutput const&)src/layout/generic/nsGfxScrollFrame.cpp:675:3
#42 nsHTMLScrollFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)src/layout/generic/nsGfxScrollFrame.cpp:1077:3
#43 nsContainerFrame::ReflowChild(nsIFrame*, nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, int, int, unsigned int, nsReflowStatus&, nsOverflowContinuationTracker*)src/layout/generic/nsContainerFrame.cpp:932:14
#44 mozilla::ViewportFrame::Reflow(nsPresContext*, mozilla::ReflowOutput&, mozilla::ReflowInput const&, nsReflowStatus&)src/layout/generic/ViewportFrame.cpp:307:7
#45 mozilla::PresShell::DoReflow(nsIFrame*, bool, mozilla::OverflowChangedTracker*)src/layout/base/PresShell.cpp:9252:11
#46 mozilla::PresShell::ProcessReflowCommands(bool)src/layout/base/PresShell.cpp:9422:24
#47 mozilla::PresShell::DoFlushPendingNotifications(mozilla::ChangesToFlush)src/layout/base/PresShell.cpp:4231:11
#48 nsRefreshDriver::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)src/layout/base/nsRefreshDriver.cpp:1979:20
#49 mozilla::RefreshDriverTimer::TickRefreshDrivers(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp, nsTArray<RefPtr<nsRefreshDriver> >&)src/layout/base/nsRefreshDriver.cpp:326:7
#50 mozilla::RefreshDriverTimer::Tick(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)src/layout/base/nsRefreshDriver.cpp:343:5
#51 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::TickRefreshDriver(mozilla::layers::BaseTransactionId<mozilla::VsyncIdType>, mozilla::TimeStamp)src/layout/base/nsRefreshDriver.cpp:709:16
#52 mozilla::VsyncRefreshDriverTimer::RefreshDriverVsyncObserver::NotifyVsync(mozilla::VsyncEvent const&)src/layout/base/nsRefreshDriver.cpp:604:9
#53 mozilla::layout::VsyncChild::RecvNotify(mozilla::VsyncEvent const&)src/layout/ipc/VsyncChild.cpp:65:16
#54 mozilla::layout::PVsyncChild::OnMessageReceived(IPC::Message const&)src/obj-firefox/ipc/ipdl/PVsyncChild.cpp:187:54
#55 mozilla::ipc::PBackgroundChild::OnMessageReceived(IPC::Message const&)src/obj-firefox/ipc/ipdl/PBackgroundChild.cpp:4717:32
#56 mozilla::ipc::MessageChannel::DispatchAsyncMessage(mozilla::ipc::ActorLifecycleProxy*, IPC::Message const&)src/ipc/glue/MessageChannel.cpp:2158:25
#57 mozilla::ipc::MessageChannel::DispatchMessage(IPC::Message&&)src/ipc/glue/MessageChannel.cpp:2082:9
#58 mozilla::ipc::MessageChannel::RunMessage(mozilla::ipc::MessageChannel::MessageTask&)src/ipc/glue/MessageChannel.cpp:1939:3
#59 mozilla::ipc::MessageChannel::MessageTask::Run()src/ipc/glue/MessageChannel.cpp:1970:13
#60 nsThread::ProcessNextEvent(bool, bool*)src/xpcom/threads/nsThread.cpp:1176:14
#61 NS_ProcessNextEvent(nsIThread*, bool)src/xpcom/threads/nsThreadUtils.cpp:486:10
#62 mozilla::ipc::MessagePump::Run(base::MessagePump::Delegate*)src/ipc/glue/MessagePump.cpp:110:5
#63 MessageLoop::RunInternal()src/ipc/chromium/src/base/message_loop.cc:315:10
#64 MessageLoop::Run()src/ipc/chromium/src/base/message_loop.cc:290:3
#65 nsBaseAppShell::Run()src/widget/nsBaseAppShell.cpp:137:27
#66 XRE_RunAppShell()src/toolkit/xre/nsEmbedFunctions.cpp:911:20
#67 mozilla::ipc::MessagePumpForChildProcess::Run(base::MessagePump::Delegate*)src/ipc/glue/MessagePump.cpp:238:9
#68 MessageLoop::RunInternal()src/ipc/chromium/src/base/message_loop.cc:315:10
#69 MessageLoop::Run()src/ipc/chromium/src/base/message_loop.cc:290:3
#70 XRE_InitChildProcess(int, char**, XREChildData const*)src/toolkit/xre/nsEmbedFunctions.cpp:749:34
#71 content_process_main(mozilla::Bootstrap*, int, char**)src/browser/app/../../ipc/contentproc/plugin-container.cpp:56:28
#72 mainsrc/browser/app/nsBrowserApp.cpp:263:18
Reporter | ||
Comment 1•6 years ago
|
||
Comment 2•6 years ago
|
||
The priority flag is not set for this bug.
:emilio, could you have a look please?
For more information, please visit auto_nag documentation.
Comment 3•6 years ago
|
||
Jonathan, is this something that you find interesting? Looks like ::first-line brokenness to me. It looks like the effective text-transform changes while reflowing which causes the assertion. I wanted to dig a bit more using rr but it crashes during reverse-continue, so...
Updated•6 years ago
|
Comment 4•6 years ago
|
||
Might be worth pushing a try run that includes this as a crashtest, to see if we can get a pernosco recording? I doubt I'll have cycles to dig into it in the immediate future, though.
Updated•2 years ago
|
Description
•