Closed
Bug 1323697
Opened 8 years ago
Closed 8 years ago
stylo: layout/generic/crashtests/1157011.html fatally asserts with "data.mPrevLines == 0 (Shouldn't have prev lines)"
Categories
(Core :: CSS Parsing and Computation, defect, P1)
Core
CSS Parsing and Computation
Tracking
()
RESOLVED
FIXED
People
(Reporter: heycam, Unassigned)
References
Details
#0 0x00007fffe70f5c4f in CalculateColumnPrefISize (aRenderingContext=0x7fffffffa200, aEnumerator=..., aBaseISizeData=0x7fffffff5ca0) at /z/stylo/hg-incubator/layout/generic/nsRubyBaseContainerFrame.cpp:160
#1 0x00007fffe70f55a9 in nsRubyBaseContainerFrame::AddInlineMinISize (this=0x7fffb9455858, aRenderingContext=0x7fffffffa200, aData=0x7fffffff5ca0) at /z/stylo/hg-incubator/layout/generic/nsRubyBaseContainerFrame.cpp:219
#2 0x00007fffe7128108 in nsRubyFrame::AddInlineMinISize (this=0x7fffb94556b0, aRenderingContext=0x7fffffffa200, aData=0x7fffffff5ca0) at /z/stylo/hg-incubator/layout/generic/nsRubyFrame.cpp:75
#3 0x00007fffe7026687 in nsBlockFrame::GetMinISize (this=0x7fffb94554f0, aRenderingContext=0x7fffffffa200) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:742
#4 0x00007fffe6f9d522 in nsLayoutUtils::IntrinsicForAxis (aAxis=mozilla::eAxisHorizontal, aRenderingContext=0x7fffffffa200, aFrame=0x7fffb94554f0, aType=nsLayoutUtils::IntrinsicISizeType::MIN_ISIZE, aFlags=0,
aMarginBoxMinSizeClamp=1073741824) at /z/stylo/hg-incubator/layout/base/nsLayoutUtils.cpp:5057
#5 0x00007fffe6f9ec80 in nsLayoutUtils::IntrinsicForContainer (aRenderingContext=0x7fffffffa200, aFrame=0x7fffb94554f0, aType=nsLayoutUtils::IntrinsicISizeType::MIN_ISIZE, aFlags=0)
at /z/stylo/hg-incubator/layout/base/nsLayoutUtils.cpp:5188
#6 0x00007fffe7064c1f in nsFlexContainerFrame::GetMinISize (this=0x7fffb9455268, aRenderingContext=0x7fffffffa200) at /z/stylo/hg-incubator/layout/generic/nsFlexContainerFrame.cpp:4746
#7 0x00007fffe7055643 in nsFrame::ShrinkWidthToFit (this=0x7fffb9455268, aRenderingContext=0x7fffffffa200, aISizeInCB=47040, aFlags=nsIFrame::eShrinkWrap) at /z/stylo/hg-incubator/layout/generic/nsFrame.cpp:5447
#8 0x00007fffe70551cc in nsContainerFrame::ComputeAutoSize (this=0x7fffb9455268, aRenderingContext=0x7fffffffa200, aWM=..., aCBSize=..., aAvailableISize=48000, aMargin=..., aBorder=..., aPadding=...,
aFlags=nsIFrame::eShrinkWrap) at /z/stylo/hg-incubator/layout/generic/nsContainerFrame.cpp:942
#9 0x00007fffe7058967 in nsFrame::ComputeSize (this=0x7fffb9455268, aRenderingContext=0x7fffffffa200, aWM=..., aCBSize=..., aAvailableISize=48000, aMargin=..., aBorder=..., aPadding=..., aFlags=nsIFrame::eShrinkWrap)
at /z/stylo/hg-incubator/layout/generic/nsFrame.cpp:4703
#10 0x00007fffe700426c in mozilla::ReflowInput::InitConstraints (this=0x7fffffff7428, aPresContext=0x7fffb34dd000, aContainingBlockSize=..., aBorder=0x0, aPadding=0x0, aFrameType=0x7fffd366c310)
at /z/stylo/hg-incubator/layout/generic/ReflowInput.cpp:2446
#11 0x00007fffe6fffeb0 in mozilla::ReflowInput::Init (this=0x7fffffff7428, aPresContext=0x7fffb34dd000, aContainingBlockSize=0x0, aBorder=0x0, aPadding=0x0) at /z/stylo/hg-incubator/layout/generic/ReflowInput.cpp:399
#12 0x00007fffe70014ca in mozilla::ReflowInput::ReflowInput (this=0x7fffffff7428, aPresContext=0x7fffb34dd000, aParentReflowInput=..., aFrame=0x7fffb9455268, aAvailableSpace=..., aContainingBlockSize=0x0, aFlags=0)
at /z/stylo/hg-incubator/layout/generic/ReflowInput.cpp:258
#13 0x00007fffe6fed348 in mozilla::Maybe<mozilla::ReflowInput>::emplace<nsPresContext*&, mozilla::ReflowInput const&, nsIFrame*&, mozilla::LogicalSize&> (this=0x7fffffff7420, aArgs=..., aArgs=..., aArgs=..., aArgs=...)
at /z/stylo/hg-incubator/obj/dist/include/mozilla/Maybe.h:432
#14 0x00007fffe6fe502e in nsLineLayout::ReflowFrame (this=0x7fffffff7a28, aFrame=0x7fffb9455268, aReflowStatus=@0x7fffffff7684: 32767, aMetrics=0x0, aPushedFrame=@0x7fffffff7683: false)
at /z/stylo/hg-incubator/layout/generic/nsLineLayout.cpp:879
#15 0x00007fffe7038a65 in nsBlockFrame::ReflowInlineFrame (this=0x7fffb9454d30, aState=..., aLineLayout=..., aLine=..., aFrame=0x7fffb9455268, aLineReflowStatus=0x7fffffff78dc)
at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:4120
#16 0x00007fffe7037efb in nsBlockFrame::DoReflowInlineFrames (this=0x7fffb9454d30, aState=..., aLineLayout=..., aLine=..., aFloatAvailableSpace=..., aAvailableSpaceBSize=@0x7fffffff7b58: 0, aFloatStateBeforeLine=0x7fffffff7b30,
aKeepReflowGoing=0x7fffffff813f, aLineReflowStatus=0x7fffffff7b5c, aAllowPullUp=true) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:3921
#17 0x00007fffe7034030 in nsBlockFrame::ReflowInlineFrames (this=0x7fffb9454d30, aState=..., aLine=..., aKeepReflowGoing=0x7fffffff813f) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:3795
#18 0x00007fffe7030823 in nsBlockFrame::ReflowLine (this=0x7fffb9454d30, aState=..., aLine=..., aKeepReflowGoing=0x7fffffff813f) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:2801
#19 0x00007fffe702bde4 in nsBlockFrame::ReflowDirtyLines (this=0x7fffb9454d30, aState=...) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:2337
#20 0x00007fffe70285b2 in nsBlockFrame::Reflow (this=0x7fffb9454d30, aPresContext=0x7fffb34dd000, aMetrics=..., aReflowInput=..., aStatus=@0x7fffffff92b0: 0) at /z/stylo/hg-incubator/layout/generic/nsBlockFrame.cpp:1200
#21 0x00007fffe704ebb7 in nsContainerFrame::ReflowChild (this=0x7fffb9454408, aKidFrame=0x7fffb9454d30, aPresContext=0x7fffb34dd000, aDesiredSize=..., aReflowInput=..., aWM=..., aPos=..., aContainerSize=..., aFlags=0,
aStatus=@0x7fffffff92b0: 0, aTracker=0x0) at /z/stylo/hg-incubator/layout/generic/nsContainerFrame.cpp:1027
#22 0x00007fffe704e1c8 in nsCanvasFrame::Reflow (this=0x7fffb9454408, aPresContext=0x7fffb34dd000, aDesiredSize=..., aReflowInput=..., aStatus=@0x7fffffff92b0: 0) at /z/stylo/hg-incubator/layout/generic/nsCanvasFrame.cpp:677
#23 0x00007fffe704ebb7 in nsContainerFrame::ReflowChild (this=0x7fffb9454498, aKidFrame=0x7fffb9454408, aPresContext=0x7fffb34dd000, aDesiredSize=..., aReflowInput=..., aWM=..., aPos=..., aContainerSize=..., aFlags=3,
aStatus=@0x7fffffff92b0: 0, aTracker=0x0) at /z/stylo/hg-incubator/layout/generic/nsContainerFrame.cpp:1027
#24 0x00007fffe70b2780 in nsHTMLScrollFrame::ReflowScrolledFrame (this=0x7fffb9454498, aState=0x7fffffff9790, aAssumeHScroll=false, aAssumeVScroll=true, aMetrics=0x7fffffff9588, aFirstPass=true)
at /z/stylo/hg-incubator/layout/generic/nsGfxScrollFrame.cpp:552
#25 0x00007fffe70b3018 in nsHTMLScrollFrame::ReflowContents (this=0x7fffb9454498, aState=0x7fffffff9790, aDesiredSize=...) at /z/stylo/hg-incubator/layout/generic/nsGfxScrollFrame.cpp:664
#26 0x00007fffe70b44b0 in nsHTMLScrollFrame::Reflow (this=0x7fffb9454498, aPresContext=0x7fffb34dd000, aDesiredSize=..., aReflowInput=..., aStatus=@0x7fffffff9fd4: 0)
at /z/stylo/hg-incubator/layout/generic/nsGfxScrollFrame.cpp:1039
#27 0x00007fffe70557ff in nsContainerFrame::ReflowChild (this=0x7fffb9454148, aKidFrame=0x7fffb9454498, aPresContext=0x7fffb34dd000, aDesiredSize=..., aReflowInput=..., aX=0, aY=0, aFlags=0, aStatus=@0x7fffffff9fd4: 0,
aTracker=0x0) at /z/stylo/hg-incubator/layout/generic/nsContainerFrame.cpp:1070
#28 0x00007fffe70147f3 in mozilla::ViewportFrame::Reflow (this=0x7fffb9454148, aPresContext=0x7fffb34dd000, aDesiredSize=..., aReflowInput=..., aStatus=@0x7fffffff9fd4: 0)
at /z/stylo/hg-incubator/layout/generic/ViewportFrame.cpp:316
#29 0x00007fffe6ef16e3 in mozilla::PresShell::DoReflow (this=0x7fffb3605c00, target=0x7fffb9454148, aInterruptible=false) at /z/stylo/hg-incubator/layout/base/PresShell.cpp:9401
#30 0x00007fffe6ef9865 in mozilla::PresShell::ProcessReflowCommands (this=0x7fffb3605c00, aInterruptible=false) at /z/stylo/hg-incubator/layout/base/PresShell.cpp:9574
#31 0x00007fffe6ef9435 in mozilla::PresShell::FlushPendingNotifications (this=0x7fffb3605c00, aFlush=...) at /z/stylo/hg-incubator/layout/base/PresShell.cpp:4150
#32 0x00007fffe6ef8ca0 in mozilla::PresShell::FlushPendingNotifications (this=0x7fffb3605c00, aType=Flush_Layout) at /z/stylo/hg-incubator/layout/base/PresShell.cpp:4007
#33 0x00007fffe6f7e94d in nsDocumentViewer::LoadComplete (this=0x7fffb655d5d0, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/layout/base/nsDocumentViewer.cpp:953
#34 0x00007fffe772771d in nsDocShell::EndPageLoad (this=0x7fffb3691000, aProgress=0x7fffb3691028, aChannel=0x7fffb10867b0, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/docshell/base/nsDocShell.cpp:7571
#35 0x00007fffe77259d3 in nsDocShell::OnStateChange (this=0x7fffb3691000, aProgress=0x7fffb3691028, aRequest=0x7fffb10867b0, aStateFlags=131088, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/docshell/base/nsDocShell.cpp:7375
#36 0x00007fffe3f27cce in nsDocLoader::DoFireOnStateChange (this=0x7fffb3691000, aProgress=0x7fffb3691028, aRequest=0x7fffb10867b0, aStateFlags=@0x7fffffffb324: 131088, aStatus=nsresult::NS_OK)
at /z/stylo/hg-incubator/uriloader/base/nsDocLoader.cpp:1255
#37 0x00007fffe3f277a9 in nsDocLoader::doStopDocumentLoad (this=0x7fffb3691000, request=0x7fffb10867b0, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/uriloader/base/nsDocLoader.cpp:840
#38 0x00007fffe3f2626f in nsDocLoader::DocLoaderIsEmpty (this=0x7fffb3691000, aFlushLayout=true) at /z/stylo/hg-incubator/uriloader/base/nsDocLoader.cpp:730
#39 0x00007fffe3f271ac in nsDocLoader::OnStopRequest (this=0x7fffb3691000, aRequest=0x7fffb15e8160, aCtxt=0x0, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/uriloader/base/nsDocLoader.cpp:612
#40 0x00007fffe2c4798f in mozilla::net::nsLoadGroup::RemoveRequest (this=0x7fffb29f9bc0, request=0x7fffb15e8160, ctxt=0x0, aStatus=nsresult::NS_OK) at /z/stylo/hg-incubator/netwerk/base/nsLoadGroup.cpp:633
#41 0x00007fffe48a9dd0 in nsDocument::DoUnblockOnload (this=0x7fffb60f2000) at /z/stylo/hg-incubator/dom/base/nsDocument.cpp:8622
#42 0x00007fffe48a9b8d in nsDocument::UnblockOnload (this=0x7fffb60f2000, aFireSync=true) at /z/stylo/hg-incubator/dom/base/nsDocument.cpp:8550
#43 0x00007fffe489ab73 in nsDocument::DispatchContentLoadedEvents (this=0x7fffb60f2000) at /z/stylo/hg-incubator/dom/base/nsDocument.cpp:5058
#44 0x00007fffe4928d1a in mozilla::detail::RunnableMethodArguments<>::applyImpl<nsDocument, void (nsDocument::*)()>(nsDocument*, void (nsDocument::*)(), mozilla::Tuple<>&, mozilla::IndexSequence<>) (o=0x7fffb60f2000,
m=(void (nsDocument::*)(nsDocument * const)) 0x7fffe489a380 <nsDocument::DispatchContentLoadedEvents()>, args=...) at /z/stylo/hg-incubator/obj/dist/include/nsThreadUtils.h:791
#45 0x00007fffe4928c99 in mozilla::detail::RunnableMethodArguments<>::apply<nsDocument, void (nsDocument::*)()>(nsDocument*, void (nsDocument::*)()) (this=0x7fffb8bf7b90, o=0x7fffb60f2000,
m=(void (nsDocument::*)(nsDocument * const)) 0x7fffe489a380 <nsDocument::DispatchContentLoadedEvents()>) at /z/stylo/hg-incubator/obj/dist/include/nsThreadUtils.h:797
#46 0x00007fffe4928b22 in mozilla::detail::RunnableMethodImpl<void (nsDocument::*)(), true, false>::Run (this=0x7fffb8bf7b50) at /z/stylo/hg-incubator/obj/dist/include/nsThreadUtils.h:826
#47 0x00007fffe2ad0ca8 in nsThread::ProcessNextEvent (this=0x7fffdfe3d300, aMayWait=false, aResult=0x7fffffffbd4e) at /z/stylo/hg-incubator/xpcom/threads/nsThread.cpp:1213
#48 0x00007fffe2b505fc in NS_ProcessNextEvent (aThread=0x7fffdfe3d300, aMayWait=false) at /z/stylo/hg-incubator/xpcom/glue/nsThreadUtils.cpp:381
#49 0x00007fffe33cb0e9 in mozilla::ipc::MessagePump::Run (this=0x7fffdfe98a80, aDelegate=0x7ffff6bb2410) at /z/stylo/hg-incubator/ipc/glue/MessagePump.cpp:96
#50 0x00007fffe33296c5 in MessageLoop::RunInternal (this=0x7ffff6bb2410) at /z/stylo/hg-incubator/ipc/chromium/src/base/message_loop.cc:232
#51 0x00007fffe3329645 in MessageLoop::RunHandler (this=0x7ffff6bb2410) at /z/stylo/hg-incubator/ipc/chromium/src/base/message_loop.cc:225
#52 0x00007fffe332961d in MessageLoop::Run (this=0x7ffff6bb2410) at /z/stylo/hg-incubator/ipc/chromium/src/base/message_loop.cc:205
#53 0x00007fffe6ad4003 in nsBaseAppShell::Run (this=0x7fffd36e7970) at /z/stylo/hg-incubator/widget/nsBaseAppShell.cpp:156
#54 0x00007fffe7cab192 in nsAppStartup::Run (this=0x7fffd36ef880) at /z/stylo/hg-incubator/toolkit/components/startup/nsAppStartup.cpp:283
#55 0x00007fffe7da48ac in XREMain::XRE_mainRun (this=0x7fffffffc728) at /z/stylo/hg-incubator/toolkit/xre/nsAppRunner.cpp:4485
#56 0x00007fffe7da5396 in XREMain::XRE_main (this=0x7fffffffc728, argc=4, argv=0x7fffffffdc08, aAppData=0x7fffffffc9e8) at /z/stylo/hg-incubator/toolkit/xre/nsAppRunner.cpp:4618
#57 0x00007fffe7da5b6f in XRE_main (argc=4, argv=0x7fffffffdc08, aAppData=0x7fffffffc9e8, aFlags=0) at /z/stylo/hg-incubator/toolkit/xre/nsAppRunner.cpp:4709
#58 0x000000000040633f in do_main (argc=4, argv=0x7fffffffdc08, envp=0x7fffffffdc30, xreDirectory=0x7ffff6b5eb40) at /z/stylo/hg-incubator/browser/app/nsBrowserApp.cpp:328
#59 0x0000000000405a62 in main (argc=4, argv=0x7fffffffdc08, envp=0x7fffffffdc30) at /z/stylo/hg-incubator/browser/app/nsBrowserApp.cpp:461
Updated•8 years ago
|
Priority: -- → P3
Comment 1•8 years ago
|
||
Marking this as P1 because it's the remaining crashes in crashtest
Priority: P3 → P1
Comment 2•8 years ago
|
||
Ruby stuff involves. Likely depends on the inlinization for ruby.
Depends on: 1364274
Comment 3•8 years ago
|
||
I've done some investigation and I've found that the key difference between a Gecko run and a Stylo run is here: http://searchfox.org/mozilla-central/source/layout/generic/nsContainerFrame.cpp#801 . At this point the "kid" (the first child / next-in-flow frame of the nsRubyBaseContainerFrame) is different. In Gecko, there's an nsTextFrame there, followed by a BRFrame. In Stylo, it starts with a BRFrame. It's likely the problem in Stylo is that we are not generating the nsTextFrame properly.
Comment 4•8 years ago
|
||
(In reply to Brad Werth [:bradwerth] from comment #3)
> In Stylo, it starts with a BRFrame. It's likely the problem in Stylo is that we are not generating the nsTextFrame properly.
I spoke too soon; Stylo does also create the nsTextFrame followed by the BRFrame in this case. Something else...
Comment 5•8 years ago
|
||
In Gecko, the BRFrame parent nsStyleContext has the NS_STYLE_SUPPRESS_LINEBREAK bit set. In Stylo, that bit is clear, which makes the if case in BRFrame::AddInlinePrefISize lead to nsIFrame::InlinePrefISizeData::ForceBreak. That function sets mPrevLines which is the source of the assertion later, in CalculateColumnPrefISize.
I haven't yet found when and how the NS_STYLE_SUPPRESS_LINEBREAK bit is cleared (or not set) in Stylo.
Comment 6•8 years ago
|
||
That bit is exactly what inlinization should set, so it would likely be fixed by that bug.
Comment 7•8 years ago
|
||
Should have been fixed by bug 1364274.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → FIXED
You need to log in
before you can comment on or make changes to this bug.
Description
•