Bug 1435615 - Reuse the same process when loading URIs on about:newtab when requests have POST data. r?mconley
MozReview-Commit-ID: 201VupYACvX
--- a/toolkit/modules/E10SUtils.jsm
+++ b/toolkit/modules/E10SUtils.jsm
@@ -232,21 +232,25 @@ var E10SUtils = {
// If not originally loaded in this process allow it if the URI would
// normally be allowed to load in this process by default.
let remoteType = Services.appinfo.remoteType;
return remoteType ==
this.getRemoteTypeForURIObject(aURI, true, remoteType, webNav.currentURI);
}
- if (sessionHistory.count == 1 && webNav.currentURI.spec == "about:newtab") {
+ if (!aHasPostData &&
+ Services.appinfo.remoteType == WEB_REMOTE_TYPE &&
+ sessionHistory.count == 1 &&
+ webNav.currentURI.spec == "about:newtab") {
// This is possibly a preloaded browser and we're about to navigate away for
// the first time. On the child side there is no way to tell for sure if that
// is the case, so let's redirect this request to the parent to decide if a new
- // process is needed.
+ // process is needed. But we don't currently properly handle POST data in
+ // redirects (bug 1457520), so if there is POST data, don't return false here.
return false;
}
// If the URI can be loaded in the current process then continue
return this.shouldLoadURIInThisProcess(aURI);
},
redirectLoad(aDocShell, aURI, aReferrer, aTriggeringPrincipal, aFreshProcess, aFlags) {