Issue #1366 - Completely remove showModalDialog

This commit is contained in:
Gaming4JC 2020-01-21 20:00:48 -05:00 committed by Roy Tam
commit 8d600c51ed
38 changed files with 14 additions and 1313 deletions

View file

@ -683,7 +683,6 @@ nsWindowWatcher::OpenWindowInternal(mozIDOMWindowProxy* aParent,
bool windowNeedsName = false;
bool windowIsModal = false;
bool uriToLoadIsChrome = false;
bool windowIsModalContentDialog = false;
uint32_t chromeFlags;
nsAutoString name; // string version of aName
@ -775,30 +774,12 @@ nsWindowWatcher::OpenWindowInternal(mozIDOMWindowProxy* aParent,
} else {
chromeFlags = CalculateChromeFlagsForChild(features);
// Until ShowModalDialog is removed, it's still possible for content to
// request dialogs, but only in single-process mode.
if (aDialog) {
MOZ_ASSERT(XRE_IsParentProcess());
chromeFlags |= nsIWebBrowserChrome::CHROME_OPENAS_DIALOG;
}
}
// If we're not called through our JS version of the API, and we got
// our internal modal option, treat the window we're opening as a
// modal content window (and set the modal chrome flag).
if (!aCalledFromJS && aArgv &&
WinHasOption(features, "-moz-internal-modal", 0, nullptr)) {
windowIsModalContentDialog = true;
// CHROME_MODAL gets inherited by dependent windows, which affects various
// platform-specific window state (especially on OSX). So we need some way
// to determine that this window was actually opened by nsGlobalWindow::
// ShowModalDialog(), and that somebody is actually going to be watching
// for return values and all that.
chromeFlags |= nsIWebBrowserChrome::CHROME_MODAL_CONTENT_WINDOW;
chromeFlags |= nsIWebBrowserChrome::CHROME_MODAL;
}
SizeSpec sizeSpec;
CalcSizeSpec(features, sizeSpec);
@ -1079,7 +1060,7 @@ nsWindowWatcher::OpenWindowInternal(mozIDOMWindowProxy* aParent,
MaybeDisablePersistence(features, newTreeOwner);
}
if ((aDialog || windowIsModalContentDialog) && aArgv) {
if (aDialog && aArgv) {
// Set the args on the new window.
nsCOMPtr<nsPIDOMWindowOuter> piwin(do_QueryInterface(*aResult));
NS_ENSURE_TRUE(piwin, NS_ERROR_UNEXPECTED);
@ -1268,8 +1249,7 @@ nsWindowWatcher::OpenWindowInternal(mozIDOMWindowProxy* aParent,
SizeOpenedWindow(newTreeOwner, aParent, isCallerChrome, sizeSpec);
}
// XXXbz isn't windowIsModal always true when windowIsModalContentDialog?
if (windowIsModal || windowIsModalContentDialog) {
if (windowIsModal) {
nsCOMPtr<nsIDocShellTreeOwner> newTreeOwner;
newDocShellItem->GetTreeOwner(getter_AddRefs(newTreeOwner));
nsCOMPtr<nsIWebBrowserChrome> newChrome(do_GetInterface(newTreeOwner));