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
This commit is contained in:
caillon%returnzero.com
2002-11-06 20:48:58 +00:00
parent ffb291f8fb
commit 4169dc34bc

View File

@@ -2899,18 +2899,25 @@ GlobalWindowImpl::Open(nsIDOMWindow **_retval)
return NS_OK;
}
nsCOMPtr<nsIWindowWatcher> 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<nsIDOMWindow> namedWindow;
wwatch->GetWindowByName(name.get(), this,
getter_AddRefs(namedWindow));
nsCOMPtr<nsIWindowWatcher> 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<nsIDOMWindow> namedWindow;
wwatch->GetWindowByName(name.get(), this,
getter_AddRefs(namedWindow));
if (!namedWindow) {
FirePopupBlockedEvent(mDocument);
return NS_OK;
}
}
}