mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-08 10:44:56 +00:00
Bug 1363975 - Have loadOneTab() provide the correct triggeringPrincipal. r=gijs,smaug
This commit is contained in:
parent
7c190eb1cc
commit
0944826c8a
@ -3,7 +3,7 @@
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
/* eslint-env mozilla/browser-window */
|
||||
/* global OpenGraphBuilder:false, DynamicResizeWatcher:false */
|
||||
/* global OpenGraphBuilder:false, DynamicResizeWatcher:false, Utils:false*/
|
||||
|
||||
// the "exported" symbols
|
||||
var SocialUI,
|
||||
@ -25,6 +25,12 @@ XPCOMUtils.defineLazyGetter(this, "DynamicResizeWatcher", function() {
|
||||
return tmp.DynamicResizeWatcher;
|
||||
});
|
||||
|
||||
XPCOMUtils.defineLazyGetter(this, "Utils", function() {
|
||||
let tmp = {};
|
||||
Cu.import("resource://gre/modules/sessionstore/Utils.jsm", tmp);
|
||||
return tmp.Utils;
|
||||
});
|
||||
|
||||
let messageManager = window.messageManager;
|
||||
let openUILinkIn = window.openUILinkIn;
|
||||
|
||||
@ -203,7 +209,11 @@ SocialActivationListener = {
|
||||
if (provider.postActivationURL) {
|
||||
// if activated from an open share panel, we load the landing page in
|
||||
// a background tab
|
||||
gBrowser.loadOneTab(provider.postActivationURL, {inBackground: SocialShare.panel.state == "open"});
|
||||
let triggeringPrincipal = Utils.deserializePrincipal(aMessage.data.triggeringPrincipal);
|
||||
gBrowser.loadOneTab(provider.postActivationURL, {
|
||||
inBackground: SocialShare.panel.state == "open",
|
||||
triggeringPrincipal,
|
||||
});
|
||||
}
|
||||
});
|
||||
}, options);
|
||||
|
@ -2291,11 +2291,14 @@ function delayedOpenWindow(chrome, flags, href, postData) {
|
||||
the URI kicked off before becoming the active content area. */
|
||||
function delayedOpenTab(aUrl, aReferrer, aCharset, aPostData, aAllowThirdPartyFixup) {
|
||||
gBrowser.loadOneTab(aUrl, {
|
||||
referrerURI: aReferrer,
|
||||
charset: aCharset,
|
||||
postData: aPostData,
|
||||
inBackground: false,
|
||||
allowThirdPartyFixup: aAllowThirdPartyFixup});
|
||||
referrerURI: aReferrer,
|
||||
charset: aCharset,
|
||||
postData: aPostData,
|
||||
inBackground: false,
|
||||
allowThirdPartyFixup: aAllowThirdPartyFixup,
|
||||
// Bug 1367168: only use systemPrincipal till we can remove that function
|
||||
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
|
||||
});
|
||||
}
|
||||
|
||||
var gLastOpenDirectory = {
|
||||
@ -2603,7 +2606,8 @@ function BrowserViewSourceOfDocument(aArgsOrDocument) {
|
||||
relatedToCurrent: true,
|
||||
inBackground: false,
|
||||
preferredRemoteType,
|
||||
sameProcessAsFrameLoader: args.browser ? args.browser.frameLoader : null
|
||||
sameProcessAsFrameLoader: args.browser ? args.browser.frameLoader : null,
|
||||
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
|
||||
});
|
||||
args.viewSourceBrowser = tabBrowser.getBrowserForTab(tab);
|
||||
top.gViewSourceUtils.viewSourceInBrowser(args);
|
||||
@ -3412,7 +3416,8 @@ var PrintPreviewListener = {
|
||||
return gBrowser.loadOneTab("about:printpreview", {
|
||||
inBackground: true,
|
||||
preferredRemoteType,
|
||||
sameProcessAsFrameLoader: browser.frameLoader
|
||||
sameProcessAsFrameLoader: browser.frameLoader,
|
||||
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
|
||||
});
|
||||
},
|
||||
getPrintPreviewBrowser() {
|
||||
@ -3437,7 +3442,8 @@ var PrintPreviewListener = {
|
||||
let browser = this.getSourceBrowser();
|
||||
this._simplifyPageTab = gBrowser.loadOneTab("about:printpreview", {
|
||||
inBackground: true,
|
||||
sameProcessAsFrameLoader: browser.frameLoader
|
||||
sameProcessAsFrameLoader: browser.frameLoader,
|
||||
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
|
||||
});
|
||||
return this.getSimplifiedSourceBrowser();
|
||||
},
|
||||
|
@ -41,6 +41,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "PageMetadata",
|
||||
"resource://gre/modules/PageMetadata.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PlacesUIUtils",
|
||||
"resource:///modules/PlacesUIUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Utils",
|
||||
"resource://gre/modules/sessionstore/Utils.jsm");
|
||||
XPCOMUtils.defineLazyGetter(this, "PageMenuChild", function() {
|
||||
let tmp = {};
|
||||
Cu.import("resource://gre/modules/PageMenu.jsm", tmp);
|
||||
@ -808,7 +810,8 @@ addEventListener("ActivateSocialFeature", function(aEvent) {
|
||||
sendAsyncMessage("Social:Activation", {
|
||||
url: ownerDocument.location.href,
|
||||
origin: ownerDocument.nodePrincipal.origin,
|
||||
manifest: data
|
||||
manifest: data,
|
||||
triggeringPrincipal: Utils.serializePrincipal(ownerDocument.nodePrincipal),
|
||||
});
|
||||
}, true, true);
|
||||
|
||||
|
@ -1179,7 +1179,8 @@ nsContextMenu.prototype = {
|
||||
}
|
||||
let tab = tabBrowser.loadOneTab("about:blank", {
|
||||
relatedToCurrent: true,
|
||||
inBackground: false
|
||||
inBackground: false,
|
||||
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
|
||||
});
|
||||
return tabBrowser.getBrowserForTab(tab);
|
||||
}
|
||||
|
@ -16,6 +16,8 @@ XPCOMUtils.defineLazyModuleGetter(this, "E10SUtils",
|
||||
"resource:///modules/E10SUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "BrowserUtils",
|
||||
"resource://gre/modules/BrowserUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "Utils",
|
||||
"resource://gre/modules/sessionstore/Utils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "PrivateBrowsingUtils",
|
||||
"resource://gre/modules/PrivateBrowsingUtils.jsm");
|
||||
XPCOMUtils.defineLazyModuleGetter(this, "AboutReader",
|
||||
@ -657,7 +659,7 @@ let PrerenderContentHandler = {
|
||||
}
|
||||
},
|
||||
|
||||
startPrerenderingDocument(aHref, aReferrer) {
|
||||
startPrerenderingDocument(aHref, aReferrer, aTriggeringPrincipal) {
|
||||
// XXX: Make this constant a pref
|
||||
if (this._pending.length >= 2) {
|
||||
return;
|
||||
@ -668,6 +670,7 @@ let PrerenderContentHandler = {
|
||||
href: aHref.spec,
|
||||
referrer: aReferrer ? aReferrer.spec : null,
|
||||
id,
|
||||
triggeringPrincipal: Utils.serializePrincipal(aTriggeringPrincipal),
|
||||
});
|
||||
|
||||
this._pending.push({
|
||||
@ -729,9 +732,9 @@ var WebBrowserChrome = {
|
||||
return true;
|
||||
},
|
||||
|
||||
startPrerenderingDocument(aHref, aReferrer) {
|
||||
startPrerenderingDocument(aHref, aReferrer, aTriggeringPrincipal) {
|
||||
if (PrerenderContentHandler.initialized) {
|
||||
PrerenderContentHandler.startPrerenderingDocument(aHref, aReferrer);
|
||||
PrerenderContentHandler.startPrerenderingDocument(aHref, aReferrer, aTriggeringPrincipal);
|
||||
}
|
||||
},
|
||||
|
||||
|
@ -5211,6 +5211,7 @@
|
||||
allowThirdPartyFixup: true,
|
||||
relatedToCurrent: true,
|
||||
isPrerendered: true,
|
||||
triggeringPrincipal: Utils.deserializePrincipal(data.triggeringPrincipal),
|
||||
});
|
||||
let partialSHistory = newTab.linkedBrowser.frameLoader.partialSHistory;
|
||||
groupedSHistory.addPrerenderingPartialSHistory(partialSHistory, data.id);
|
||||
|
@ -218,10 +218,12 @@ CustomizeMode.prototype = {
|
||||
}
|
||||
|
||||
if (!gTab) {
|
||||
this.setTab(this.browser.loadOneTab("about:blank",
|
||||
{ inBackground: false,
|
||||
forceNotRemote: true,
|
||||
skipAnimation: true }));
|
||||
this.setTab(this.browser.loadOneTab("about:blank", {
|
||||
inBackground: false,
|
||||
forceNotRemote: true,
|
||||
skipAnimation: true,
|
||||
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
|
||||
}));
|
||||
return;
|
||||
}
|
||||
if (!gTab.selected) {
|
||||
|
@ -121,7 +121,7 @@ let WebCompatReporter = {
|
||||
|
||||
let tab = gBrowser.loadOneTab(
|
||||
`${WebCompatReporter.endpoint}?url=${encodeURIComponent(tabData.url)}&src=desktop-reporter`,
|
||||
{inBackground: false});
|
||||
{inBackground: false, triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal()});
|
||||
|
||||
// If we successfully got a screenshot blob, add a listener to know when
|
||||
// the new tab is loaded before sending it over.
|
||||
|
@ -3145,7 +3145,7 @@ nsIDocument::PrerenderHref(nsIURI* aHref)
|
||||
tabChild->GetWebBrowserChrome(getter_AddRefs(wbc3));
|
||||
NS_ENSURE_TRUE(wbc3, false);
|
||||
|
||||
rv = wbc3->StartPrerenderingDocument(aHref, referrer);
|
||||
rv = wbc3->StartPrerenderingDocument(aHref, referrer, NodePrincipal());
|
||||
NS_ENSURE_SUCCESS(rv, false);
|
||||
|
||||
return true;
|
||||
|
@ -79,8 +79,11 @@ interface nsIWebBrowserChrome3 : nsIWebBrowserChrome2
|
||||
*
|
||||
* @param aHref The URI to begin prerendering
|
||||
* @param aReferrer The URI of the document requesting the prerender.
|
||||
* @param aTriggeringPrincipal The Principal that initiated to load aHref
|
||||
*/
|
||||
void startPrerenderingDocument(in nsIURI aHref, in nsIURI aReferrer);
|
||||
void startPrerenderingDocument(in nsIURI aHref,
|
||||
in nsIURI aReferrer,
|
||||
in nsIPrincipal aTriggeringPrincipal);
|
||||
|
||||
/**
|
||||
* Check if there's a prerendered document which matches given URI /
|
||||
|
@ -482,8 +482,10 @@ var TelemetryReportingPolicyImpl = {
|
||||
win.addEventListener("unload", removeListeners);
|
||||
win.gBrowser.addTabsProgressListener(progressListener);
|
||||
|
||||
tab = win.gBrowser.loadOneTab(firstRunPolicyURL, { inBackground: true });
|
||||
|
||||
tab = win.gBrowser.loadOneTab(firstRunPolicyURL, {
|
||||
inBackground: true,
|
||||
triggeringPrincipal: Services.scriptSecurityManager.getSystemPrincipal(),
|
||||
});
|
||||
return true;
|
||||
},
|
||||
|
||||
|
@ -429,7 +429,8 @@ NS_IMETHODIMP nsContentTreeOwner::ReloadInFreshProcess(nsIDocShell* aDocShell,
|
||||
}
|
||||
|
||||
NS_IMETHODIMP nsContentTreeOwner::StartPrerenderingDocument(nsIURI* aHref,
|
||||
nsIURI* aReferrer)
|
||||
nsIURI* aReferrer,
|
||||
nsIPrincipal* aTriggeringPrincipal)
|
||||
{
|
||||
NS_WARNING("Cannot prerender a document in the parent process");
|
||||
return NS_ERROR_FAILURE;
|
||||
|
Loading…
Reference in New Issue
Block a user