PosixSelectorBase::~PosixSelectorBase() { #ifdef POSIX_OK_NETADDR DetachListeners(m_connecting); #endif DetachListeners(m_watched); }
void EmbedPrivate::Destroy(void) { // This flag might have been set from // EmbedWindow::DestroyBrowserWindow() as well if someone used a // window.close() or something or some other script action to close // the window. No harm setting it again. mIsDestroyed = PR_TRUE; // Get the nsIWebBrowser object for our embedded window. nsCOMPtr<nsIWebBrowser> webBrowser; mWindow->GetWebBrowser(getter_AddRefs(webBrowser)); // Release our progress listener nsCOMPtr<nsISupportsWeakReference> supportsWeak; supportsWeak = do_QueryInterface(mProgressGuard); nsCOMPtr<nsIWeakReference> weakRef; supportsWeak->GetWeakReference(getter_AddRefs(weakRef)); webBrowser->RemoveWebBrowserListener(weakRef, NS_GET_IID(nsIWebProgressListener)); weakRef = nsnull; supportsWeak = nsnull; // Release our content listener webBrowser->SetParentURIContentListener(nsnull); mContentListenerGuard = nsnull; mContentListener = nsnull; // Now that we have removed the listener, release our progress // object mProgressGuard = nsnull; mProgress = nsnull; // detach our event listeners and release the event receiver DetachListeners(); if (mEventTarget) mEventTarget = nsnull; // destroy our child window mWindow->ReleaseChildren(); // release navigation mNavigation = nsnull; // release session history mSessionHistory = nsnull; mOwningWidget = nsnull; mMozWindowWidget = 0; }