[XPFE] Properly anchor XUL windows when tearing down.

This commit is contained in:
Fedor 2020-05-09 00:36:53 +03:00
parent 3b8ccba2e9
commit 36bfd0bc9c
1 changed files with 2 additions and 10 deletions

View File

@ -455,6 +455,8 @@ NS_IMETHODIMP nsXULWindow::Destroy()
if (mDestroying)
return NS_OK;
nsCOMPtr<nsIXULWindow> kungFuDeathGrip(this);
mozilla::AutoRestore<bool> guard(mDestroying);
mDestroying = true;
@ -467,16 +469,6 @@ NS_IMETHODIMP nsXULWindow::Destroy()
if (parentWindow)
parentWindow->RemoveChildWindow(this);
// let's make sure the window doesn't get deleted out from under us
// while we are trying to close....this can happen if the docshell
// we close ends up being the last owning reference to this xulwindow
// XXXTAB This shouldn't be an issue anymore because the ownership model
// only goes in one direction. When webshell container is fully removed
// try removing this...
nsCOMPtr<nsIXULWindow> placeHolder = this;
// Remove modality (if any) and hide while destroying. More than
// a convenience, the hide prevents user interaction with the partially
// destroyed window. This is especially necessary when the eldest window