Add a flag to nsIWebNavigation to disable popup-blocking for loads as needed.

Bug 278357, r=biesi, sr=jst, a=bsmedberg


git-svn-id: svn://10.0.0.236/trunk@235986 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
bzbarsky%mit.edu 2007-09-14 19:21:45 +00:00
parent 1c94dbb4e6
commit 5b55964d58
2 changed files with 16 additions and 0 deletions

View File

@ -2801,6 +2801,16 @@ nsDocShell::LoadURI(const PRUnichar * aURI,
if (NS_FAILED(rv) || !uri)
return NS_ERROR_FAILURE;
PopupControlState popupState;
if (aLoadFlags & LOAD_FLAGS_ALLOW_POPUPS) {
popupState = openAllowed;
aLoadFlags &= ~LOAD_FLAGS_ALLOW_POPUPS;
} else {
popupState = openOverridden;
}
nsCOMPtr<nsPIDOMWindow> win(do_QueryInterface(mScriptGlobal));
nsAutoPopupStatePusher statePusher(win, popupState);
// Don't pass certain flags that aren't needed and end up confusing
// ConvertLoadTypeToDocShellLoadInfo. We do need to ensure that they are
// passed to LoadURI though, since it uses them.

View File

@ -191,6 +191,12 @@ interface nsIWebNavigation : nsISupports
*/
const unsigned long LOAD_FLAGS_FIRST_LOAD = 0x4000;
/**
* This flag specifies that the load should not be subject to popup
* blocking checks.
*/
const unsigned long LOAD_FLAGS_ALLOW_POPUPS = 0x8000;
/**
* Loads a given URI. This will give priority to loading the requested URI
* in the object implementing this interface. If it can't be loaded here