From 0740dd460d4e470dd0584f5e8f21cba78625f114 Mon Sep 17 00:00:00 2001 From: "danm%netscape.com" Date: Tue, 12 Jun 2001 23:05:17 +0000 Subject: [PATCH] OpenWindow 'gracefully' handles disconnected parent windows. bug 78504 r=dr,hyatt a=asa git-svn-id: svn://10.0.0.236/trunk@96988 18797224-902f-48f8-a5cc-f745e15eee43 --- .../components/windowwatcher/src/nsWindowWatcher.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp b/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp index 1db16e677c9..66f9448ac9f 100644 --- a/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp +++ b/mozilla/embedding/components/windowwatcher/src/nsWindowWatcher.cpp @@ -508,9 +508,15 @@ nsWindowWatcher::OpenWindowJS(nsIDOMWindow *aParent, GetWindowTreeItem(aParent, getter_AddRefs(shelltree)); if (shelltree) shelltree->GetSameTypeRootTreeItem(getter_AddRefs(newDocShellItem)); - } else - parentTreeOwner->FindItemWithName(name.GetUnicode(), nsnull, - getter_AddRefs(newDocShellItem)); + } else { + /* parent is being simultaneously torn down (probably because of + the code that keeps an old docshell alive but disconnected while + we load a new one). not much to do but open the new window + without a parent. */ + if (parentTreeOwner) + parentTreeOwner->FindItemWithName(name.GetUnicode(), nsnull, + getter_AddRefs(newDocShellItem)); + } } else FindItemWithName(name.GetUnicode(), getter_AddRefs(newDocShellItem)); }