From ddabff5a223522a62ff383751f656622997d0d05 Mon Sep 17 00:00:00 2001 From: "bent.mozilla@gmail.com" Date: Thu, 7 Feb 2008 16:29:17 -0800 Subject: [PATCH] Backing out patch for bug 353851 to see if it fixes test failures. --- dom/src/base/nsGlobalWindow.cpp | 20 +++++++++----------- dom/src/base/nsGlobalWindow.h | 2 +- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/dom/src/base/nsGlobalWindow.cpp b/dom/src/base/nsGlobalWindow.cpp index 01f19e1d0c1f..3cd3708f1dc6 100644 --- a/dom/src/base/nsGlobalWindow.cpp +++ b/dom/src/base/nsGlobalWindow.cpp @@ -930,6 +930,8 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(nsGlobalWindow) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mContext) + NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mOpener) + NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mControllers) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mArguments) NS_IMPL_CYCLE_COLLECTION_TRAVERSE_NSCOMPTR(mArgumentsLast) @@ -972,6 +974,8 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(nsGlobalWindow) NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mContext) + NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mOpener) + NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mControllers) NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mArguments) NS_IMPL_CYCLE_COLLECTION_UNLINK_NSCOMPTR(mArgumentsLast) @@ -2069,9 +2073,7 @@ nsGlobalWindow::SetOpenerWindow(nsIDOMWindowInternal* aOpener, NS_ASSERTION(aOpener || !aOriginalOpener, "Shouldn't set mHadOriginalOpener if aOpener is null"); - mOpener = do_GetWeakReference(aOpener); - NS_ASSERTION(mOpener, "Opener must support weak references!"); - + mOpener = aOpener; if (aOriginalOpener) { mHadOriginalOpener = PR_TRUE; } @@ -2799,15 +2801,11 @@ nsGlobalWindow::GetOpener(nsIDOMWindowInternal** aOpener) FORWARD_TO_OUTER(GetOpener, (aOpener), NS_ERROR_NOT_INITIALIZED); *aOpener = nsnull; - - nsCOMPtr opener = do_QueryReferent(mOpener); - if (!opener) { - return NS_OK; - } - // First, check if we were called from a privileged chrome script + if (nsContentUtils::IsCallerTrustedForRead()) { - NS_ADDREF(*aOpener = opener); + *aOpener = mOpener; + NS_IF_ADDREF(*aOpener); return NS_OK; } @@ -2827,7 +2825,7 @@ nsGlobalWindow::GetOpener(nsIDOMWindowInternal** aOpener) PRUint32 appType; nsresult rv = openerRootDocShell->GetAppType(&appType); if (NS_SUCCEEDED(rv) && appType != nsIDocShell::APP_TYPE_MAIL) { - *aOpener = opener; + *aOpener = mOpener; } } } diff --git a/dom/src/base/nsGlobalWindow.h b/dom/src/base/nsGlobalWindow.h index dda832169564..ee6537fd3aa9 100644 --- a/dom/src/base/nsGlobalWindow.h +++ b/dom/src/base/nsGlobalWindow.h @@ -663,7 +663,7 @@ protected: PRPackedBool mIsChrome : 1; nsCOMPtr mContext; - nsWeakPtr mOpener; + nsCOMPtr mOpener; nsCOMPtr mControllers; nsCOMPtr mArguments; nsCOMPtr mArgumentsLast;