mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Backout of b407ff123b6f
This commit is contained in:
parent
2a4b8377d3
commit
51b484700c
@ -976,62 +976,33 @@ function nsBrowserAccess() {
|
||||
}
|
||||
|
||||
nsBrowserAccess.prototype = {
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIBrowserDOMWindow]),
|
||||
|
||||
_getBrowser: function _getBrowser(aURI, aOpener, aWhere, aContext) {
|
||||
let isExternal = (aContext == Ci.nsIBrowserDOMWindow.OPEN_EXTERNAL);
|
||||
if (isExternal && aURI && aURI.schemeIs("chrome"))
|
||||
return null;
|
||||
|
||||
let loadflags = isExternal ?
|
||||
Ci.nsIWebNavigation.LOAD_FLAGS_FROM_EXTERNAL :
|
||||
Ci.nsIWebNavigation.LOAD_FLAGS_NONE;
|
||||
if (aWhere == Ci.nsIBrowserDOMWindow.OPEN_DEFAULTWINDOW) {
|
||||
switch (aContext) {
|
||||
case Ci.nsIBrowserDOMWindow.OPEN_EXTERNAL:
|
||||
aWhere = Services.prefs.getIntPref("browser.link.open_external");
|
||||
break;
|
||||
default: // OPEN_NEW or an illegal value
|
||||
aWhere = Services.prefs.getIntPref("browser.link.open_newwindow");
|
||||
}
|
||||
}
|
||||
|
||||
let browser;
|
||||
if (aWhere == Ci.nsIBrowserDOMWindow.OPEN_NEWWINDOW || aWhere == Ci.nsIBrowserDOMWindow.OPEN_NEWTAB) {
|
||||
let tab = BrowserApp.addTab("about:blank", { selected: true });
|
||||
browser = tab.browser;
|
||||
} else { // OPEN_CURRENTWINDOW and illegal values
|
||||
browser = BrowserApp.selectedBrowser;
|
||||
}
|
||||
|
||||
Services.io.offline = false;
|
||||
try {
|
||||
let referrer;
|
||||
if (aURI && browser) {
|
||||
if (aOpener) {
|
||||
let location = aOpener.location;
|
||||
referrer = Services.io.newURI(location, null, null);
|
||||
}
|
||||
browser.loadURIWithFlags(aURI.spec, loadflags, referrer, null, null);
|
||||
}
|
||||
} catch(e) { }
|
||||
|
||||
return browser;
|
||||
},
|
||||
|
||||
openURI: function browser_openURI(aURI, aOpener, aWhere, aContext) {
|
||||
let browser = this._getBrowser(aURI, aOpener, aWhere, aContext);
|
||||
return browser ? browser.QueryInterface(Ci.nsIFrameLoaderOwner) : null;
|
||||
let isExternal = (aContext == Ci.nsIBrowserDOMWindow.OPEN_EXTERNAL);
|
||||
|
||||
dump("nsBrowserAccess::openURI");
|
||||
let browser = BrowserApp.selectedBrowser;
|
||||
if (!browser || isExternal) {
|
||||
let tab = BrowserApp.addTab("about:blank");
|
||||
BrowserApp.selectTab(tab);
|
||||
browser = tab.browser;
|
||||
}
|
||||
|
||||
// Why does returning the browser.contentWindow not work here?
|
||||
Services.io.offline = false;
|
||||
BrowserApp.loadURI(aURI.spec, browser);
|
||||
return null;
|
||||
},
|
||||
|
||||
openURIInFrame: function browser_openURIInFrame(aURI, aOpener, aWhere, aContext) {
|
||||
let browser = this._getBrowser(aURI, aOpener, aWhere, aContext);
|
||||
return browser ? browser.QueryInterface(Ci.nsIFrameLoaderOwner) : null;
|
||||
dump("nsBrowserAccess::openURIInFrame");
|
||||
return null;
|
||||
},
|
||||
|
||||
isTabContentWindow: function(aWindow) {
|
||||
return BrowserApp.getBrowserForWindow(aWindow) != null;
|
||||
}
|
||||
},
|
||||
|
||||
QueryInterface: XPCOMUtils.generateQI([Ci.nsIBrowserDOMWindow])
|
||||
};
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user