Add a flag to nsIWebNavigation to disable popup-blocking for loads as needed. Bug 278357, r=biesi, sr=jst, a=bsmedberg

This commit is contained in:
bzbarsky@mit.edu 2007-09-14 12:21:45 -07:00
Родитель 318e376b4c
Коммит 81e60268e2
2 изменённых файлов: 16 добавлений и 0 удалений

Просмотреть файл

@ -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.

Просмотреть файл

@ -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