зеркало из https://github.com/mozilla/gecko-dev.git
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:
Родитель
318e376b4c
Коммит
81e60268e2
|
@ -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
|
||||
|
|
Загрузка…
Ссылка в новой задаче