[MYPAL] Set the browser's opener when adding a new tab

master
Fedor 2019-07-08 13:08:50 +03:00
parent ba9a4b84ca
commit 6641b605e4
2 changed files with 13 additions and 2 deletions

View File

@ -4481,13 +4481,15 @@ nsBrowserAccess.prototype = {
}
let loadInBackground = gPrefService.getBoolPref("browser.tabs.loadDivertedInBackground");
let openerWindow = (aContext & Ci.nsIBrowserDOMWindow.OPEN_NO_OPENER) ? null : aOpener;
let tab = win.gBrowser.loadOneTab(aURI ? aURI.spec : "about:blank", {
triggeringPrincipal: triggeringPrincipal,
referrerURI: referrer,
referrerPolicy: referrerPolicy,
fromExternal: isExternal,
inBackground: loadInBackground});
inBackground: loadInBackground,
opener: openerWindow });
let browser = win.gBrowser.getBrowserForTab(tab);
if (gPrefService.getBoolPref("browser.tabs.noWindowActivationOnExternal")) {

View File

@ -1337,6 +1337,7 @@
var aFromExternal;
var aRelatedToCurrent;
var aOriginPrincipal;
var aOpener;
if (arguments.length == 2 &&
typeof arguments[1] == "object" &&
!(arguments[1] instanceof Ci.nsIURI)) {
@ -1351,6 +1352,7 @@
aFromExternal = params.fromExternal;
aRelatedToCurrent = params.relatedToCurrent;
aOriginPrincipal = params.originPrincipal;
aOpener = params.opener;
}
var bgLoad = (aLoadInBackground != null) ? aLoadInBackground :
@ -1366,7 +1368,8 @@
allowThirdPartyFixup: aAllowThirdPartyFixup,
fromExternal: aFromExternal,
originPrincipal: aOriginPrincipal,
relatedToCurrent: aRelatedToCurrent});
relatedToCurrent: aRelatedToCurrent,
opener: aOpener });
if (!bgLoad)
this.selectedTab = tab;
@ -1489,6 +1492,7 @@
var aSkipAnimation;
var aOriginPrincipal;
var aSkipBackgroundNotify;
var aOpener;
if (arguments.length == 2 &&
typeof arguments[1] == "object" &&
!(arguments[1] instanceof Ci.nsIURI)) {
@ -1504,6 +1508,7 @@
aRelatedToCurrent = params.relatedToCurrent;
aSkipAnimation = params.skipAnimation;
aOriginPrincipal = params.originPrincipal;
aOpener = params.opener;
aSkipBackgroundNotify = params.skipBackgroundNotify;
}
@ -1578,6 +1583,10 @@
b.setAttribute("showresizer", "true");
}
if (aOpener) {
b.QueryInterface(Ci.nsIFrameLoaderOwner).presetOpenerWindow(aOpener);
}
if (this.hasAttribute("autocompletepopup"))
b.setAttribute("autocompletepopup", this.getAttribute("autocompletepopup"));
b.setAttribute("autoscrollpopup", this._autoScrollPopup.id);