Closed Bug 12132 Opened 25 years ago Closed 25 years ago

Crashes when doing a "New Msg".

Categories

(MailNews Core :: Composition, defect, P3)

x86
Windows NT
defect

Tracking

(Not tracked)

VERIFIED DUPLICATE of bug 12142

People

(Reporter: skasinathan, Assigned: troy)

Details

Overview Description:  Whenever I click "New Msg" button it crashes.

Build Date & Platform Bug Found:
Windows Debug Build 8/19/99 on Win NT 4.0. I pulled the tree around 10.00 AM.

Steps to Reproduce:
1. Start Messenger using Task | Messenger
2. Click "New Msg". Crash! Crash!

Here is the stack trace!

NTDLL! 77f7629c()
nsDebug::PreCondition(const char * 0x01be0e68, const char * 0x01be0e5c, const
char * 0x01be0e30, int 267) line 152 + 13 bytes
nsFrame::AppendFrames(nsFrame * const 0x04adbe20, nsIPresContext & {...},
nsIPresShell & {...}, nsIAtom * 0x00000000, nsIFrame * 0x04bd2910) line 267 + 35
bytes
FrameManager::AppendFrames(FrameManager * const 0x0420e090, nsIPresContext &
{...}, nsIPresShell & {...}, nsIFrame * 0x04adbe20, nsIAtom * 0x00000000,
nsIFrame * 0x04bd2910) line 354
nsCSSFrameConstructor::AppendFrames(nsIPresContext * 0x04254910, nsIPresShell *
0x0420e460, nsIFrameManager * 0x0420e090, nsIContent * 0x04abc5b0, nsIFrame *
0x04adbe20, nsIFrame * 0x04bd2910) line 4260 + 30 bytes
nsCSSFrameConstructor::ContentAppended(nsCSSFrameConstructor * const 0x0420e550,
nsIPresContext * 0x04254910, nsIContent * 0x04abc5b0, int 0) line 4358
StyleSetImpl::ContentAppended(StyleSetImpl * const 0x0420e5f0, nsIPresContext *
0x04254910, nsIContent * 0x04abc5b0, int 0) line 790
PresShell::ContentAppended(PresShell * const 0x0420e468, nsIDocument *
0x04309520, nsIContent * 0x04abc5b0, int 0) line 1562 + 46 bytes
XULDocumentImpl::ContentAppended(XULDocumentImpl * const 0x04309520, nsIContent
* 0x04abc5b0, int 0) line 1962
nsGenericHTMLContainerElement::AppendChildTo(nsIContent * 0x04bd104c, int 1)
line 2778
nsGenericHTMLContainerElement::InsertBefore(nsIDOMNode * 0x04bd1040, nsIDOMNode
* 0x00000000, nsIDOMNode * * 0x0012d638) line 2462 + 14 bytes
nsGenericHTMLContainerElement::AppendChild(nsIDOMNode * 0x04bd1040, nsIDOMNode *
* 0x0012d638) line 2618
nsHTMLSelectElement::Add(nsHTMLSelectElement * const 0x04abc5a0,
nsIDOMHTMLElement * 0x04bd1040, nsIDOMHTMLElement * 0x00000000) line 310 + 19
bytes
HTMLSelectElementAdd(JSContext * 0x04251880, JSObject * 0x044c7960, unsigned int
2, long * 0x044bbd50, long * 0x0012d784) line 542 + 33 bytes
js_Invoke(JSContext * 0x04251880, unsigned int 2, unsigned int 0) line 654 + 26
bytes
js_Interpret(JSContext * 0x04251880, long * 0x0012dfb0) line 2228 + 15 bytes
js_Invoke(JSContext * 0x04251880, unsigned int 1, unsigned int 0) line 670 + 13
bytes
js_Interpret(JSContext * 0x04251880, long * 0x0012e798) line 2228 + 15 bytes
js_Invoke(JSContext * 0x04251880, unsigned int 0, unsigned int 0) line 670 + 13
bytes
js_Interpret(JSContext * 0x04251880, long * 0x0012ef80) line 2228 + 15 bytes
js_Invoke(JSContext * 0x04251880, unsigned int 1, unsigned int 2) line 670 + 13
bytes
js_InternalCall(JSContext * 0x04251880, JSObject * 0x044c6248, long 72114768,
unsigned int 1, long * 0x0012f0c0, long * 0x0012f0c8) line 747 + 15 bytes
JS_CallFunctionValue(JSContext * 0x04251880, JSObject * 0x044c6248, long
72114768, unsigned int 1, long * 0x0012f0c0, long * 0x0012f0c8) line 2643 + 29
bytes
nsJSEventListener::HandleEvent(nsIDOMEvent * 0x04bcae20) line 97 + 34 bytes
nsEventListenerManager::HandleEvent(nsIPresContext & {...}, nsEvent *
0x0012f2b4, nsIDOMEvent * * 0x0012f260, unsigned int 3, nsEventStatus &
nsEventStatus_eIgnore) line 917 + 21 bytes
RDFElementImpl::HandleDOMEvent(RDFElementImpl * const 0x04a909a0, nsIPresContext
& {...}, nsEvent * 0x0012f2b4, nsIDOMEvent * * 0x0012f260, unsigned int 1,
nsEventStatus & nsEventStatus_eIgnore) line 2392
RDFElementImpl::ExecuteJSCode(nsIDOMElement * 0x04a90990) line 2777
RDFElementImpl::ExecuteOnChangeHandler(nsIDOMElement * 0x04a86d40, const
nsString & {...}) line 2700 + 14 bytes
RDFElementImpl::SetAttribute(RDFElementImpl * const 0x04a8f5e0, int 0, nsIAtom *
0x02bf53f0, const nsString & {...}, int 1) line 1998
RDFXULBuilderImpl::AddAttribute(nsIContent * 0x04a8f5e0, nsIRDFResource *
0x02bf8fe0, nsIRDFNode * 0x02b41ef0) line 2791 + 31 bytes
RDFXULBuilderImpl::OnChange(RDFXULBuilderImpl * const 0x04a85bd4, nsIRDFResource
* 0x04978d30, nsIRDFResource * 0x02bf8fe0, nsIRDFNode * 0x02b43400, nsIRDFNode *
0x02b41ef0) line 1254 + 31 bytes
CompositeDataSourceImpl::OnChange(CompositeDataSourceImpl * const 0x04a85824,
nsIRDFResource * 0x04978d30, nsIRDFResource * 0x02bf8fe0, nsIRDFNode *
0x02b43400, nsIRDFNode * 0x02b41ef0) line 1417
InMemoryDataSource::Change(InMemoryDataSource * const 0x04309dd0, nsIRDFResource
* 0x04978d30, nsIRDFResource * 0x02bf8fe0, nsIRDFNode * 0x02b43400, nsIRDFNode *
0x02b41ef0) line 1241
CompositeDataSourceImpl::Change(CompositeDataSourceImpl * const 0x04a85820,
nsIRDFResource * 0x04978d30, nsIRDFResource * 0x02bf8fe0, nsIRDFNode *
0x02b43400, nsIRDFNode * 0x02b41ef0) line 946 + 28 bytes
RDFXULBuilderImpl::OnSetAttribute(RDFXULBuilderImpl * const 0x04a85bdc,
nsIDOMElement * 0x04a8f5d0, const nsString & {...}, const nsString & {...}) line
1703 + 71 bytes
XULDocumentImpl::OnSetAttribute(XULDocumentImpl * const 0x04309548,
nsIDOMElement * 0x04a8f5d0, const nsString & {...}, const nsString & {...}) line
3812
RDFElementImpl::SetAttribute(RDFElementImpl * const 0x04a8f5d0, const nsString &
{...}, const nsString & {...}) line 984
setAttribute(nsIWebShell * 0x0424aa60, const char * 0x027cdf08, const char *
0x027cdf00, const nsString & {...}) line 259 + 57 bytes
nsArgCallbacks::ConstructBeforeJavaScript(nsArgCallbacks * const 0x0424ef90,
nsIWebShell * 0x0424aa60) line 291 + 41 bytes
nsWebShellWindow::ExecuteStartupCode() line 2158
nsWebShellWindow::OnEndDocumentLoad(nsWebShellWindow * const 0x0424e10c,
nsIDocumentLoader * 0x0424a8c0, nsIChannel * 0x04a73c50, unsigned int 0,
nsIDocumentLoaderObserver * 0x0424aa74) line 1906
nsWebShell::OnEndDocumentLoad(nsWebShell * const 0x0424aa74, nsIDocumentLoader *
0x04b3cb40, nsIChannel * 0x04a73c50, unsigned int 0, nsIDocumentLoaderObserver *
0x0424aa74) line 3307
nsDocLoaderImpl::FireOnEndDocumentLoad(nsIDocumentLoader * 0x04b3cb40, unsigned
int 0) line 1124
nsDocLoaderImpl::ChildDocLoaderFiredEndDocumentLoad(nsDocLoaderImpl *
0x04b3cb40, nsIDocumentLoader * 0x04b3cb40, unsigned int 0) line 1147
nsDocLoaderImpl::FireOnEndDocumentLoad(nsIDocumentLoader * 0x04b3cb40, unsigned
int 0) line 1132
nsDocLoaderImpl::OnStopRequest(nsDocLoaderImpl * const 0x04b3cb44, nsIChannel *
0x04b3dee0, nsISupports * 0x00000000, unsigned int 0, const unsigned short *
0x00000000) line 1031
nsOnStopRequestEvent::HandleEvent(nsOnStopRequestEvent * const 0x04b6b440) line
274
nsStreamListenerEvent::HandlePLEvent(PLEvent * 0x04b6b444) line 149 + 12 bytes
PL_HandleEvent(PLEvent * 0x04b6b444) line 509 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x00f3b4e0) line 470 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x10d3031a, unsigned int 49407, unsigned int 0,
long 15971552) line 932 + 9 bytes
USER32! 77e71820()
00f3b4e0()
cc'ing troy.
this looks like something broke in the select element.

During the creation of the message composition window, we fill up the identities
<select> element with the available identities from JavaScript...

How do we add To:, CC:, etc? do we add that dynamically as well?
adding myself to CC
I'm still building, so it may be half and hour before I can help
Status: NEW → ASSIGNED
I am building too...

The to, cc, bcc, etc... dropdown menu was created dynamically. As Paul rewrite
it, I don't know if it's still dynamic.
Yes I am going to rewrite this, but it will still dynamically create the options

inside the html:select.  I will be creating many other pieces dynamically as

well.  This same dynamic creation is happening in the new card dialog of the

address book, has anyone looked to see if that is still working?
troy checked in a bunch of table/frame layout code yesterday. I'm guessing it's
related...I see nsIFrameManager stuff in the top of this stack.
Yes, it's related. It looks like we're now using gfx rendered select frames and
not the native widgets as we have been. I don't know when that started

Evidently mail/news is the only code that dynamically appends elements and the
select frame code doesn't handle AppendFrames() which is why we're hitting the
assert in nsFrame's version. The assert is there to indicate there's a problem
and sure enough there is
No, nsNativeSelectFrame is for native widgets not a gfx form element. I don't
know why it's getting child frames appended. I think that's always been
happening and either my recently added assert detected the problem, or the
mail/news code recently started dynamically building the select list

I have a small change nsNativeSelectFrame we can use as well.

This doesn't appear to be a major problem. It looks more like we detected a
previously hidden problem
*** Bug 12142 has been marked as a duplicate of this bug. ***
On Mac, It doesn't crash but adressing dropdown menu which the content is created dynamically (all but the first
one) appear very tiny.

I get also the assert "Precondition: no a container (PR_FALSE) at file nsFrame.cpp, line 267
How is this different that 12142? If they're the same, then mark this a DUP of
12142.

We're not crashing on Windows, either. We're hitting an assert. That's just the
way asserts behave
Status: ASSIGNED → RESOLVED
Closed: 25 years ago
Resolution: --- → DUPLICATE
you're right, it's a dupe

*** This bug has been marked as a duplicate of 12142 ***
Status: RESOLVED → REOPENED
Resolution: DUPLICATE → ---
Assignee: ducarroz → troy
Status: REOPENED → NEW
oops, we have a dupe loop
reopening this bug and reassigning to troy.
Troy, I'll let you reassign this to rod or kevin, whichever is appropriate
Status: NEW → RESOLVED
Closed: 25 years ago25 years ago
Resolution: --- → DUPLICATE
*** This bug has been marked as a duplicate of 12142 ***
Status: RESOLVED → VERIFIED
marking verified as a duplicate.
Product: MailNews → Core
Product: Core → MailNews Core
You need to log in before you can comment on or make changes to this bug.