rv = FireUnloadEvent();
if (nsnull != mScriptGlobal) { nsIDocumentViewer* docViewer; if (nsnull != mContentViewer && NS_OK == mContentViewer->QueryInterface(kIDocumentViewerIID, (void**)&docViewer)) { nsIPresContext *presContext; if (NS_OK == docViewer->GetPresContext(presContext)) { nsEventStatus status = nsEventStatus_eIgnore; nsMouseEvent event; event.eventStructType = NS_EVENT; event.message = NS_PAGE_UNLOAD; rv = mScriptGlobal->HandleDOMEvent(*presContext, &event, nsnull, NS_EVENT_FLAG_INIT, status);
NS_IMETHODIMP nsWebShell::Destroy(){  nsresult rv = NS_OK;  //Fire unload event before we blow anything away.  rv = FireUnloadEvent();  nsDocShell::Destroy();  SetContainer(nsnull);  return NS_OK;}