Closed Bug 46979 Opened 24 years ago Closed 24 years ago

Crash when pressing save button on wallet interview html form

Categories

(SeaMonkey :: General, defect, P3)

x86
Windows NT
defect

Tracking

(Not tracked)

VERIFIED FIXED

People

(Reporter: morse, Assigned: danm.moz)

References

()

Details

(Keywords: crash)

1. Create fresh profile

2. Start browser

3. Open wallet interview form either by going to the URL noted above or by using 
the task menu (tasks->privacy->form-manager->interview).

Note: it will take a long time for this page to appear and just before it does 
you will get numerous assertion failures.  These are covered in bug 42451 (long 
delay) and bug 46943 (assertion failures).

4. Press any of the save buttons on the page (there are about a half dozen of 
them)

5. Following crash will occur

nsBrowserInstance::ReinitializeContentVariables() line 402 + 36 bytes
nsBrowserInstance::GetContentAreaDocShell() line 413
nsBrowserInstance::CanHandleContent(nsBrowserInstance * const 0x04af45a8, const 
char * 0x04cb67f0, int 0, const char * 0x1009fc78 gCommonEmptyBuffer, char * * 
0x0012d81c, int * 0x0012d648) line 1680 + 13 bytes
nsURILoader::ShouldHandleContent(nsIURIContentListener * 0x04af45a8, const char 
* 0x04cb67f0, int 0, const char * 0x1009fc78 gCommonEmptyBuffer, char * * 
0x0012d81c) line 748
nsURILoader::DispatchContent(nsURILoader * const 0x00f7c930, const char * 
0x04cb67f0, int 0, const char * 0x1009fc78 gCommonEmptyBuffer, nsIChannel * 
0x04cb6b10, nsISupports * 0x00000000, nsIURIContentListener * 0x04af5210, 
nsISupports * 0x04af3940, char * * 0x0012d81c, nsIURIContentListener * * 
0x0012d824, int * 0x0012d814) line 814 + 28 bytes
nsDocumentOpenInfo::DispatchContent(nsIChannel * 0x04cb6b10, nsISupports * 
0x00000000) line 302 + 165 bytes
nsDocumentOpenInfo::OnStartRequest(nsDocumentOpenInfo * const 0x04cb68c0, 
nsIChannel * 0x04cb6b10, nsISupports * 0x00000000) line 233 + 16 bytes
nsCachedChromeChannel::HandleStartLoadEvent(PLEvent * 0x04cb6870) line 510
PL_HandleEvent(PLEvent * 0x04cb6870) line 587 + 10 bytes
PL_ProcessPendingEvents(PLEventQueue * 0x04af5ad0) line 528 + 9 bytes
_md_EventReceiverProc(HWND__ * 0x01bc086e, unsigned int 49416, unsigned int 0, 
long 78600912) line 1043 + 9 bytes
USER32! 77e71268()
04af5ad0
Crash is occuring on the following line in ReinitializeContentVariables of 
nsBrowserInstance.cpp.  danm and hyatt were the last two people to modify these 
lines of code.

void
nsBrowserInstance::ReinitializeContentVariables()
{
    nsCOMPtr<nsIDOMWindow> content;
    mDOMWindow->Get_content(getter_AddRefs(content));
    SetContentWindow(content);
}

Without understanding what this is used for, I naively fixed this in my own tree 
by adding the following test around these lines of code.  It stopped the 
crash.  Let me know if this is the correct thing to do, in which case I'll check 
in the fix.

void
nsBrowserInstance::ReinitializeContentVariables()
{
  if (mDOMWindow) {
    nsCOMPtr<nsIDOMWindow> content;
    mDOMWindow->Get_content(getter_AddRefs(content));
    SetContentWindow(content);
  }
}
Oops, I forgot to anotate the crash line in the code above.  It is the line that 
reads:

   mDOMWindow->Get_content(getter_AddRefs(content));

and mDOMWindow is null at this time.
Keywords: nsbeta3
spam: Adding crash keyword...
Keywords: crash
->danm
Assignee: hyatt → danm
The null mDOMWindow happened because the browser instance created by 
interview.html JS was never initialized. Browser instances are twitchy, and want 
to be put to sleep. Don't wanna talk much about the concept of creating a browser 
instance within a web page ... rrr ... rrr ... but anyway, I've added 
initialization. Crash gone.
Status: NEW → RESOLVED
Closed: 24 years ago
Resolution: --- → FIXED
verified 2000090908, no crash win98
Status: RESOLVED → VERIFIED
Product: Browser → Seamonkey
You need to log in before you can comment on or make changes to this bug.