if (mQueue)
nsresult rv;  if (mContext)
nsresult EventQueueAutoPopper::Push(){  if (mQueue) // only once    return NS_ERROR_FAILURE;  mService = do_GetService(NS_EVENTQUEUESERVICE_CONTRACTID);  if (!mService)    return NS_ERROR_FAILURE;  // push a new queue onto it  mService->PushThreadEventQueue(getter_AddRefs(mQueue));  if (!mQueue)    return NS_ERROR_FAILURE;#ifdef HAVE_LAME_APPSHELL  // listen to the event queue  mAppShell = do_CreateInstance(kAppShellCID);  if (!mAppShell)    return NS_ERROR_FAILURE;  mAppShell->Create(0, nsnull);  mAppShell->Spinup();  // listen to the new queue  mAppShell->ListenToEventQueue(mQueue, PR_TRUE);#endif  return NS_OK;}