зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1338375 Part 1: Fix window settings and navigation when creating a new window in a new process.
This commit is contained in:
Родитель
93e2a0ae63
Коммит
19984fc539
|
@ -4538,12 +4538,29 @@ ContentParent::CommonCreateWindow(PBrowserParent* aThisTab,
|
|||
return IPC_OK();
|
||||
}
|
||||
|
||||
if (aSetOpener && thisTabParent) {
|
||||
aResult = pwwatch->OpenWindowWithTabParent(thisTabParent, aFeatures,
|
||||
aCalledFromJS, aFullZoom,
|
||||
aResult = pwwatch->OpenWindowWithTabParent(aSetOpener ? thisTabParent : nullptr,
|
||||
aFeatures, aCalledFromJS, aFullZoom,
|
||||
getter_AddRefs(aNewTabParent));
|
||||
} else {
|
||||
aResult = pwwatch->OpenWindowWithoutParent(getter_AddRefs(aNewTabParent));
|
||||
if (NS_WARN_IF(NS_FAILED(aResult))) {
|
||||
return IPC_OK();
|
||||
}
|
||||
|
||||
if (aURIToLoad) {
|
||||
nsCOMPtr<mozIDOMWindowProxy> openerWindow;
|
||||
if (aSetOpener && thisTabParent) {
|
||||
openerWindow = thisTabParent->GetParentWindowOuter();
|
||||
}
|
||||
nsCOMPtr<nsIBrowserDOMWindow> newBrowserDOMWin =
|
||||
TabParent::GetFrom(aNewTabParent)->GetBrowserDOMWindow();
|
||||
if (NS_WARN_IF(!newBrowserDOMWin)) {
|
||||
aResult = NS_ERROR_ABORT;
|
||||
return IPC_OK();
|
||||
}
|
||||
nsCOMPtr<mozIDOMWindowProxy> win;
|
||||
aResult = newBrowserDOMWin->OpenURI(aURIToLoad, openerWindow,
|
||||
nsIBrowserDOMWindow::OPEN_CURRENTWINDOW,
|
||||
nsIBrowserDOMWindow::OPEN_NEW,
|
||||
getter_AddRefs(win));
|
||||
}
|
||||
|
||||
return IPC_OK();
|
||||
|
|
|
@ -88,15 +88,6 @@ interface nsPIWindowWatcher : nsISupports
|
|||
in boolean aForceNoOpener,
|
||||
in nsIDocShellLoadInfo aLoadInfo);
|
||||
|
||||
/**
|
||||
* Opens a new window using the most recent non-private browser
|
||||
* window as its parent.
|
||||
*
|
||||
* @return the nsITabParent of the initial browser for the newly opened
|
||||
* window.
|
||||
*/
|
||||
nsITabParent openWindowWithoutParent();
|
||||
|
||||
/**
|
||||
* Opens a new window so that the window that aOpeningTab belongs to
|
||||
* is set as the parent window. The newly opened window will also
|
||||
|
|
|
@ -474,12 +474,6 @@ CheckUserContextCompatibility(nsIDocShell* aDocShell)
|
|||
return subjectPrincipal->GetUserContextId() == userContextId;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsWindowWatcher::OpenWindowWithoutParent(nsITabParent** aResult)
|
||||
{
|
||||
return OpenWindowWithTabParent(nullptr, EmptyCString(), true, 1.0f, aResult);
|
||||
}
|
||||
|
||||
nsresult
|
||||
nsWindowWatcher::CreateChromeWindow(const nsACString& aFeatures,
|
||||
nsIWebBrowserChrome* aParentChrome,
|
||||
|
|
Загрузка…
Ссылка в новой задаче