From 4169dc34bc1ed01644f939ea98d36503bedaafbc Mon Sep 17 00:00:00 2001 From: "caillon%returnzero.com" Date: Wed, 6 Nov 2002 20:48:58 +0000 Subject: [PATCH] 177526 - Don't block calls to window.open() that don't actually pop open new windows. r=jkeiser sr=bzbarsky git-svn-id: svn://10.0.0.236/trunk@133185 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/dom/src/base/nsGlobalWindow.cpp | 27 ++++++++++++++++--------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/mozilla/dom/src/base/nsGlobalWindow.cpp b/mozilla/dom/src/base/nsGlobalWindow.cpp index d91a741cdaf..df1f44e40a0 100644 --- a/mozilla/dom/src/base/nsGlobalWindow.cpp +++ b/mozilla/dom/src/base/nsGlobalWindow.cpp @@ -2899,18 +2899,25 @@ GlobalWindowImpl::Open(nsIDOMWindow **_retval) return NS_OK; } - nsCOMPtr wwatch(do_GetService(NS_WINDOWWATCHER_CONTRACTID, &rv)); - // If getting a window watcher fails, we'd fail downstream anyway when trying to - // open a new window so just bail here. - NS_ENSURE_SUCCESS(rv, rv); + // Special case items that don't actually open new windows. + if (!name.EqualsIgnoreCase("_top") && + !name.EqualsIgnoreCase("_self") && + !name.EqualsIgnoreCase("_content")) { - nsCOMPtr namedWindow; - wwatch->GetWindowByName(name.get(), this, - getter_AddRefs(namedWindow)); + nsCOMPtr wwatch = + do_GetService(NS_WINDOWWATCHER_CONTRACTID, &rv); + // If getting a window watcher fails, we'd fail downstream anyway + // when trying to open a new window so just bail here. + NS_ENSURE_SUCCESS(rv, rv); - if (!namedWindow) { - FirePopupBlockedEvent(mDocument); - return NS_OK; + nsCOMPtr namedWindow; + wwatch->GetWindowByName(name.get(), this, + getter_AddRefs(namedWindow)); + + if (!namedWindow) { + FirePopupBlockedEvent(mDocument); + return NS_OK; + } } }