Closed
Bug 119351
Opened 24 years ago
Closed 23 years ago
Get assert in layout when loading this url ("no body node")
Categories
(Core :: Layout, defect, P1)
Tracking
()
VERIFIED
FIXED
mozilla1.1alpha
People
(Reporter: depman1, Assigned: dbaron)
References
()
Details
Attachments
(1 file)
1.30 KB,
patch
|
kinmoz
:
review+
waterson
:
superreview+
|
Details | Diff | Splinter Review |
tested in mozilla debug 0.9.7+ 20020109 and mfcEmbed.
1. Launch mfcEmbed or mozilla
2. Enter above url.
Result: Get assert: "no body node:, file
/mozilla/layout/html/style/src/nsCSSrendering.cpp, line 2441. pressing ignore
will allow url to load.
stack trace for the assert:
nsDebug::Assertion(const char * 0x02e1df44 ??_C@_0N@KADF@no?5body?5node?$AA@,
const char * 0x02e1df54 ??_C@_0M@IAAH@bodyContent?$AA@, const char * 0x02e1df60
??_C@_0EA@IGDH@d?3?2mozilla_src?2mozilla?2layout?2ht@, int 2441) line 290 + 13 bytes
FindCanvasBackground(nsIPresContext * 0x0354fc90, nsIFrame * 0x03237b08, const
nsStyleBackground * * 0x0012f434) line 2441 + 38 bytes
nsCSSRendering::FindBackground(nsIPresContext * 0x0354fc90, nsIFrame *
0x03237b08, const nsStyleBackground * * 0x0012f434, int * 0x0012f40c) line 2503
+ 23 bytes
nsCSSRendering::PaintBackground(nsIPresContext * 0x0354fc90, nsIRenderingContext
& {...}, nsIFrame * 0x03237b08, const nsRect & {...}, const nsRect & {...},
const nsStyleBorder & {...}, int 0, int 0) line 2521 + 21 bytes
nsHTMLContainerFrame::Paint(nsHTMLContainerFrame * const 0x03237b08,
nsIPresContext * 0x0354fc90, nsIRenderingContext & {...}, const nsRect & {...},
nsFramePaintLayer eFramePaintLayer_Underlay, unsigned int 0) line 96 + 33 bytes
CanvasFrame::Paint(CanvasFrame * const 0x03237b08, nsIPresContext * 0x0354fc90,
nsIRenderingContext & {...}, const nsRect & {...}, nsFramePaintLayer
eFramePaintLayer_Underlay, unsigned int 0) line 388 + 27 bytes
PresShell::Paint(PresShell * const 0x03563194, nsIView * 0x035b44e0,
nsIRenderingContext & {...}, const nsRect & {...}) line 5769 + 36 bytes
nsView::Paint(nsView * const 0x035b44e0, nsIRenderingContext & {...}, const
nsRect & {...}, unsigned int 0, int & 268486020) line 272
nsViewManager::RenderDisplayListElement(DisplayListElement2 * 0x03580040,
nsIRenderingContext & {...}) line 1240
nsViewManager::RenderViews(nsView * 0x035b49a0, nsIRenderingContext & {...},
const nsRect & {...}, int & 0) line 1164
nsViewManager::Refresh(nsView * 0x035b49a0, nsIRenderingContext * 0x03587910,
nsIRegion * 0x035878c0, unsigned int 1) line 703
nsViewManager::DispatchEvent(nsViewManager * const 0x03562ac0, nsGUIEvent *
0x0012f9dc, nsEventStatus * 0x0012f8e8) line 1783
HandleEvent(nsGUIEvent * 0x0012f9dc) line 83
nsWindow::DispatchEvent(nsWindow * const 0x035b4864, nsGUIEvent * 0x0012f9dc,
nsEventStatus & nsEventStatus_eIgnore) line 850 + 10 bytes
nsWindow::DispatchWindowEvent(nsGUIEvent * 0x0012f9dc, nsEventStatus &
nsEventStatus_eIgnore) line 876
nsWindow::OnPaint() line 4324 + 28 bytes
nsWindow::ProcessMessage(unsigned int 15, unsigned int 0, long 0, long *
0x0012fdfc) line 3246 + 17 bytes
nsWindow::WindowProc(HWND__ * 0x0061031a, unsigned int 15, unsigned int 0, long
0) line 1115 + 27 bytes
USER32! 77e719d0()
USER32! 77e71982()
N
Updated•24 years ago
|
Target Milestone: --- → mozilla1.0.1
Comment 1•23 years ago
|
||
Moving Mozilla 1.01 bugs to 'future' milestone with priority P1
I will be pulling bugs from 'future' milestones when scheduling later work.
Priority: -- → P1
Target Milestone: mozilla1.0.1 → Future
Reporter | ||
Comment 2•23 years ago
|
||
Mozilla 0.9.9 Gecko 20020304 debug build:
a few other urls where a similar assert happens: cbs.com, citibank, greatwestern.
(ASSERTION: no body node: 'bodyContent', file
/mozilla/layout/html/style/src/nsCSSRendering.cpp, line 2468
citibank.com debug log:
nsDebug::Assertion(const char * 0x02fe836c ??_C@_0N@KADF@no?5body?5node?$AA@,
const char * 0x02fe837c ??_C@_0M@IAAH@bodyContent?$AA@, const char * 0x02fe8388
??_C@_0EA@IGDH@d?3?2mozilla_src?2mozilla?2layout?2ht@, int 2468) line 291 + 13 bytes
FindCanvasBackground(nsIPresContext * 0x04468330, nsIFrame * 0x0469348c, const
nsStyleBackground * * 0x0012d07c) line 2468 + 38 bytes
nsCSSRendering::FindBackground(nsIPresContext * 0x04468330, nsIFrame *
0x0469348c, const nsStyleBackground * * 0x0012d07c, int * 0x0012d074) line 2539
+ 23 bytes
nsContainerFrame::SyncFrameViewAfterReflow(nsIPresContext * 0x04468330, nsIFrame
* 0x0469348c, nsIView * 0x0467de40, const nsRect * 0x0012d284, unsigned int 3)
line 545 + 21 bytes
nsContainerFrame::FinishReflowChild(nsIFrame * 0x0469348c, nsIPresContext *
0x04468330, const nsHTMLReflowState * 0x0012d13c, nsHTMLReflowMetrics & {...},
int 0, int 0, unsigned int 3) line 897 + 28 bytes
nsBoxToBlockAdaptor::Reflow(nsBoxLayoutState & {...}, nsIPresContext *
0x04468330, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...},
unsigned int & 0, int 0, int 0, int 12660, int 9315, int 1) line 899 + 40 bytes
nsBoxToBlockAdaptor::DoLayout(nsBoxToBlockAdaptor * const 0x045dc658,
nsBoxLayoutState & {...}) line 620 + 46 bytes
nsBox::Layout(nsBox * const 0x045dc658, nsBoxLayoutState & {...}) line 1052
nsScrollBoxFrame::DoLayout(nsScrollBoxFrame * const 0x046937c4, nsBoxLayoutState
& {...}) line 395
nsBox::Layout(nsBox * const 0x046937c4, nsBoxLayoutState & {...}) line 1052
nsContainerBox::LayoutChildAt(nsBoxLayoutState & {...}, nsIBox * 0x046937c4,
const nsRect & {...}) line 646 + 16 bytes
nsGfxScrollFrameInner::LayoutBox(nsBoxLayoutState & {...}, nsIBox * 0x046937c4,
const nsRect & {...}) line 1061 + 17 bytes
nsGfxScrollFrameInner::Layout(nsBoxLayoutState & {...}) line 1216
nsGfxScrollFrame::DoLayout(nsGfxScrollFrame * const 0x046935cc, nsBoxLayoutState
& {...}) line 1069 + 15 bytes
nsBox::Layout(nsBox * const 0x046935cc, nsBoxLayoutState & {...}) line 1052
nsBoxFrame::Reflow(nsBoxFrame * const 0x04693594, nsIPresContext * 0x04468330,
nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, unsigned int & 0)
line 1001
nsGfxScrollFrame::Reflow(nsGfxScrollFrame * const 0x04693594, nsIPresContext *
0x04468330, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...},
unsigned int & 0) line 776 + 25 bytes
nsContainerFrame::ReflowChild(nsIFrame * 0x04693594, nsIPresContext *
0x04468330, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...}, int 0,
int 0, unsigned int 0, unsigned int & 0) line 782 + 31 bytes
ViewportFrame::Reflow(ViewportFrame * const 0x04693450, nsIPresContext *
0x04468330, nsHTMLReflowMetrics & {...}, const nsHTMLReflowState & {...},
unsigned int & 0) line 574
PresShell::InitialReflow(PresShell * const 0x04570000, int 12660, int 9315) line
2674
HTMLContentSink::StartLayout() line 3888
HTMLContentSink::DidBuildModel(HTMLContentSink * const 0x034c7b10, int 0) line 2725
CNavDTD::DidBuildModel(CNavDTD * const 0x0467f298, unsigned int 2152596471, int
1, nsIParser * 0x045af0f8, nsIContentSink * 0x034c7b10) line 670 + 14 bytes
nsParser::DidBuildModel(unsigned int 2152596471) line 1388 + 41 bytes
nsParser::Terminate() line 1471
nsHTMLDocument::StopDocumentLoad(nsHTMLDocument * const 0x040ad560) line 1059
DocumentViewerImpl::Stop(DocumentViewerImpl * const 0x0458bde8) line 1468
nsDocShell::Stop(nsDocShell * const 0x040d07f8, unsigned int 2) line 2434
LocationImpl::SetHrefWithBase(const nsAString & {...}, nsIURI * 0x045f7170, int
1) line 575
LocationImpl::SetHrefWithContext(JSContext * 0x03509758, const nsAString &
{...}, int 1) line 510 + 25 bytes
LocationImpl::Replace(LocationImpl * const 0x046450a0, const nsAString & {...})
line 886 + 21 bytes
XPTC_InvokeByIndex(nsISupports * 0x046450a0, unsigned int 20, unsigned int 1,
nsXPTCVariant * 0x0012e07c) line 106
XPCWrappedNative::CallMethod(XPCCallContext & {...}, XPCWrappedNative::CallMode
CALL_METHOD) line 2020 + 42 bytes
XPC_WN_CallMethod(JSContext * 0x03509758, JSObject * 0x0419de98, unsigned int 1,
long * 0x04633418, long * 0x0012e358) line 1266 + 14 bytes
js_Invoke(JSContext * 0x03509758, unsigned int 1, unsigned int 0) line 788 + 23
bytes
js_Interpret(JSContext * 0x03509758, long * 0x0012f208) line 2745 + 15 bytes
js_Execute(JSContext * 0x03509758, JSObject * 0x03544c18, JSScript * 0x04496458,
JSStackFrame * 0x00000000, unsigned int 0, long * 0x0012f208) line 968 + 13 bytes
JS_EvaluateUCScriptForPrincipals(JSContext * 0x03509758, JSObject * 0x03544c18,
JSPrincipals * 0x04680c00, const unsigned short * 0x045f07c0, unsigned int 729,
const char * 0x045e3c40, unsigned int 3, long * 0x0012f208) line 3339 + 25 bytes
nsJSContext::EvaluateString(nsJSContext * const 0x035044e8, const nsAString &
{...}, void * 0x03544c18, nsIPrincipal * 0x04680bfc, const char * 0x045e3c40,
unsigned int 3, const char * 0x014b669c, nsAString & {...}, int * 0x0012f270)
line 676 + 85 bytes
nsScriptLoader::EvaluateScript(nsScriptLoadRequest * 0x045c0bf8, const
nsAFlatString & {...}) line 587
nsScriptLoader::ProcessRequest(nsScriptLoadRequest * 0x045c0bf8) line 494 + 22 bytes
nsScriptLoader::ProcessScriptElement(nsScriptLoader * const 0x044bdba8,
nsIDOMHTMLScriptElement * 0x045c1040, nsIScriptLoaderObserver * 0x045c1044) line
437 + 15 bytes
nsHTMLScriptElement::SetDocument(nsHTMLScriptElement * const 0x045c1018,
nsIDocument * 0x040ad560, int 0, int 1) line 159
nsGenericHTMLContainerElement::AppendChildTo(nsGenericHTMLContainerElement *
const 0x04573430, nsIContent * 0x045c1018, int 0, int 0) line 3926
HTMLContentSink::ProcessSCRIPTTag(const nsIParserNode & {...}) line 5091
HTMLContentSink::AddLeaf(HTMLContentSink * const 0x034c7b10, const nsIParserNode
& {...}) line 3452 + 12 bytes
CNavDTD::AddLeaf(const nsIParserNode * 0x044bd070) line 3802 + 25 bytes
CNavDTD::AddHeadLeaf(nsIParserNode * 0x044bd070) line 3860 + 15 bytes
CNavDTD::HandleStartToken(CToken * 0x046277a0) line 1729 + 12 bytes
CNavDTD::HandleToken(CNavDTD * const 0x0467f298, CToken * 0x00000000, nsIParser
* 0x045af0f8) line 895 + 12 bytes
CNavDTD::BuildModel(CNavDTD * const 0x0467f298, nsIParser * 0x045af0f8,
nsITokenizer * 0x04572d18, nsITokenObserver * 0x00000000, nsIContentSink *
0x034c7b10) line 521 + 20 bytes
nsParser::BuildModel() line 2007 + 34 bytes
nsParser::ResumeParse(int 1, int 0, int 1) line 1873 + 11 bytes
nsParser::OnDataAvailable(nsParser * const 0x045af0fc, nsIRequest * 0x041af2c8,
nsISupports * 0x00000000, nsIInputStream * 0x0442a1f0, unsigned int 0, unsigned
int 896) line 2496 + 21 bytes
nsDocumentOpenInfo::OnDataAvailable(nsDocumentOpenInfo * const 0x04098130,
nsIRequest * 0x041af2c8, nsISupports * 0x00000000, nsIInputStream * 0x0442a1f0,
unsigned int 0, unsigned int 896) line 241 + 46 bytes
nsStreamListenerTee::OnDataAvailable(nsStreamListenerTee * const 0x04424db8,
nsIRequest * 0x041af2c8, nsISupports * 0x00000000, nsIInputStream * 0x0466cf08,
unsigned int 0, unsigned int 896) line 56 + 51 bytes
nsHttpChannel::OnDataAvailable(nsHttpChannel * const 0x041af2cc, nsIRequest *
0x04655bfc, nsISupports * 0x00000000, nsIInputStream * 0x0466cf08, unsigned int
0, unsigned int 896) line 2572 + 57 bytes
nsOnDataAvailableEvent::HandleEvent() line 193 + 70 bytes
nsARequestObserverEvent::HandlePLEvent(PLEvent * 0x045c3014) line 116
PL_HandleEvent(PLEvent * 0x045c3014) line 590 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x01082d60) line 520 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x02380214, unsigned int 49489, unsigned int 0,
long 17313120) line 1071 + 9 bytes
USER32! 77e71820()
01082d60()
FYI: This assertion was added by dbaron, at waterson's request, when he fixed
bug 118829.
This assertion drives me nuts! I hit it when using my debug builds to browse and
when reading mail with html attachments. When it does happen, I usually have to
restart the app, because I get into this vicious circle of painting and hitting
this assertion because on Win32 an assert pops up a dialog, which usually
obscures a portion of the window that was being painted, which generates another
paint event, which means the assertion is triggered again ... and on and on.
I see this reliably when visiting http://my.netscape.com, so I've resorted to
locally changing the assertion to an NS_WARNING() in every Win32 debug build I
use for dogfood.
If we can't fix the fact that there is no body, or figure out why it happens,
can we at least change it to an NS_WARNING?
Comment 4•23 years ago
|
||
I get into the mode Kin describes all the time when testing/debugging some key
embedding clients. I pretty much have to kill my app (on Windows) when i hit
this assert since i get stuck in an endless loop like Kin.
I second the idea of changing it to NS_WARNING unless there's a reason not to.
Assignee | ||
Comment 5•23 years ago
|
||
What does NS_WARNING do on Windows? Just print to the console, like
NS_ASSERTION does on Linux? On Linux, I think NS_WARNING and NS_ASSERTION do
the same thing. Or am I getting NS_WARNING and NS_WARN_IF_FALSE mixed up?
Changing it to something that doesn't bring up a dialog (even an #ifdef DEBUG
printf) is fine with me.
Comment 6•23 years ago
|
||
kin, you whiner. Fix the bug. ;-)
dbaron: it pops up a dialog, three choices, ignore, retry, abort.
ignore lets the process continue, retry triggers the debugger, abort kills the
app.
it's very easy to accidentally trigger the wrong one.
NS_WARNING does not give this dialog.
Assignee | ||
Comment 8•23 years ago
|
||
Does NS_WARN_IF_FALSE give the dialog?
Assignee | ||
Comment 9•23 years ago
|
||
Never mind. It clearly does.
Taking bug, so I remember to fix it.
Assignee: attinasi → dbaron
Target Milestone: Future → mozilla1.1alpha
Assignee | ||
Comment 10•23 years ago
|
||
*** Bug 134665 has been marked as a duplicate of this bug. ***
Assignee | ||
Comment 11•23 years ago
|
||
Removes assertion completely and explains why we need the null check.
Comment 12•23 years ago
|
||
Comment on attachment 82674 [details] [diff] [review]
patch
sr=waterson.
Attachment #82674 -
Flags: superreview+
Comment 13•23 years ago
|
||
Attachment #82674 -
Flags: review+
Assignee | ||
Comment 14•23 years ago
|
||
Fix checked in 2002-05-08 12:27 PDT.
Status: NEW → RESOLVED
Closed: 23 years ago
Resolution: --- → FIXED
Reporter | ||
Comment 15•23 years ago
|
||
verified in mozilla and mfcEmbed. Assertion removed from nsCSSRendering.cpp.
Mozilla 1.0.0+ Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.0.0+) Gecko/20020509
Status: RESOLVED → VERIFIED
You need to log in
before you can comment on or make changes to this bug.
Description
•