Bug 1435615 - Reuse the same process when loading URIs on about:newtab when requests have POST data. r?mconley draft
authorDrew Willcoxon <adw@mozilla.com>
Fri, 27 Apr 2018 10:48:42 -0700
changeset 789157 2a8077e222cdc8333f17f9063cfef0b61376882e
parent 788735 63a0e2f626febb98d87d2543955ab99a653654ff
push id108200
push userbmo:adw@mozilla.com
push dateFri, 27 Apr 2018 17:49:21 +0000
reviewersmconley
bugs1435615
milestone61.0a1
Bug 1435615 - Reuse the same process when loading URIs on about:newtab when requests have POST data. r?mconley MozReview-Commit-ID: 201VupYACvX
toolkit/modules/E10SUtils.jsm
--- 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) {