Bug 1320765 - Test mRemoteBrowser to avoid crash during swapping frame loaders. r=mystor draft
authorJ. Ryan Stinnett <jryans@gmail.com>
Tue, 29 Nov 2016 13:49:17 -0600
changeset 445503 37549639eebc1018f13e7cf1bebb16c01c50f9cd
parent 444725 8387a4ada9a5c4cab059d8fafe0f8c933e83c149
child 538530 da8c67de101763df66928787092dea59c594df8a
push id37522
push userbmo:jryans@gmail.com
push dateTue, 29 Nov 2016 19:50:23 +0000
reviewersmystor
bugs1320765
milestone53.0a1
Bug 1320765 - Test mRemoteBrowser to avoid crash during swapping frame loaders. r=mystor MozReview-Commit-ID: 9Ypk1FmdjUU
dom/base/nsFrameLoader.cpp
--- a/dom/base/nsFrameLoader.cpp
+++ b/dom/base/nsFrameLoader.cpp
@@ -1267,16 +1267,20 @@ nsFrameLoader::SwapWithOtherRemoteLoader
   }
 
   nsIPresShell* ourShell = ourDoc->GetShell();
   nsIPresShell* otherShell = otherDoc->GetShell();
   if (!ourShell || !otherShell) {
     return NS_ERROR_NOT_IMPLEMENTED;
   }
 
+  if (!mRemoteBrowser || !aOther->mRemoteBrowser) {
+    return NS_ERROR_NOT_IMPLEMENTED;
+  }
+
   if (mRemoteBrowser->IsIsolatedMozBrowserElement() !=
       aOther->mRemoteBrowser->IsIsolatedMozBrowserElement()) {
     return NS_ERROR_NOT_IMPLEMENTED;
   }
 
   // When we swap docShells, maybe we have to deal with a new page created just
   // for this operation. In this case, the browser code should already have set
   // the correct userContextId attribute value in the owning XULElement, but our