Bug 1351777 - Remove aSuccess argument to RenderFrame constructor. r?dvander draft
authorKartikaya Gupta <kgupta@mozilla.com>
Fri, 31 Mar 2017 11:43:21 -0400
changeset 554461 e398b8ee5c261c35d63938d3144284638f95a765
parent 554460 719063ad2b1e545696887945e94fb376f547a402
child 554462 ea26f8d7ad9382ffe781200b57fac545941dde73
push id51931
push userkgupta@mozilla.com
push dateFri, 31 Mar 2017 15:44:23 +0000
reviewersdvander
bugs1351777
milestone55.0a1
Bug 1351777 - Remove aSuccess argument to RenderFrame constructor. r?dvander Instead we can use the otherwise-unused function to check if initialization worked. Technically, because of the way RenderFrame construction works, whether or not initialization succeeds is exactly dependent on whether or not the frameloader is non-null, so we could even just use that to check success. But this feels slightly more readable/cleaner. MozReview-Commit-ID: CGiIAA1h6V7
dom/ipc/TabParent.cpp
layout/ipc/RenderFrameParent.cpp
layout/ipc/RenderFrameParent.h
--- a/dom/ipc/TabParent.cpp
+++ b/dom/ipc/TabParent.cpp
@@ -644,18 +644,18 @@ TabParent::InitRenderFrame()
   if (IsInitedByParent()) {
     // If TabParent is initialized by parent side then the RenderFrame must also
     // be created here. If TabParent is initialized by child side,
     // child side will create RenderFrame.
     MOZ_ASSERT(!GetRenderFrame());
     RefPtr<nsFrameLoader> frameLoader = GetFrameLoader();
     MOZ_ASSERT(frameLoader);
     if (frameLoader) {
-      bool success;
-      RenderFrameParent* renderFrame = new RenderFrameParent(frameLoader, &success);
+      RenderFrameParent* renderFrame = new RenderFrameParent(frameLoader);
+      MOZ_ASSERT(renderFrame->IsInitted());
       uint64_t layersId = renderFrame->GetLayersId();
       AddTabParentToTable(layersId, this);
       if (!SendPRenderFrameConstructor(renderFrame)) {
         return;
       }
 
       TextureFactoryIdentifier textureFactoryIdentifier;
       renderFrame->GetTextureFactoryIdentifier(&textureFactoryIdentifier);
@@ -2485,21 +2485,19 @@ TabParent::DeallocPColorPickerParent(PCo
   return true;
 }
 
 PRenderFrameParent*
 TabParent::AllocPRenderFrameParent()
 {
   MOZ_ASSERT(ManagedPRenderFrameParent().IsEmpty());
   RefPtr<nsFrameLoader> frameLoader = GetFrameLoader();
-  bool success = false;
-
-  RenderFrameParent* rfp =
-    new RenderFrameParent(frameLoader, &success);
-  if (success) {
+
+  RenderFrameParent* rfp = new RenderFrameParent(frameLoader);
+  if (rfp->IsInitted()) {
     uint64_t layersId = rfp->GetLayersId();
     AddTabParentToTable(layersId, this);
   }
   return rfp;
 }
 
 bool
 TabParent::DeallocPRenderFrameParent(PRenderFrameParent* aFrame)
--- a/layout/ipc/RenderFrameParent.cpp
+++ b/layout/ipc/RenderFrameParent.cpp
@@ -80,25 +80,24 @@ GetFrom(nsFrameLoader* aFrameLoader)
 {
   nsIDocument* doc = aFrameLoader->GetOwnerDoc();
   if (!doc) {
     return nullptr;
   }
   return nsContentUtils::LayerManagerForDocument(doc);
 }
 
-RenderFrameParent::RenderFrameParent(nsFrameLoader* aFrameLoader, bool* aSuccess)
+RenderFrameParent::RenderFrameParent(nsFrameLoader* aFrameLoader)
   : mLayersId(0)
   , mFrameLoader(aFrameLoader)
   , mFrameLoaderDestroyed(false)
   , mAsyncPanZoomEnabled(false)
   , mInitted(false)
 {
   mInitted = Init(aFrameLoader);
-  *aSuccess = mInitted;
 }
 
 RenderFrameParent::~RenderFrameParent()
 {}
 
 bool
 RenderFrameParent::Init(nsFrameLoader* aFrameLoader)
 {
--- a/layout/ipc/RenderFrameParent.h
+++ b/layout/ipc/RenderFrameParent.h
@@ -50,17 +50,17 @@ class RenderFrameParent : public PRender
 public:
 
 
   /**
    * Select the desired scrolling behavior.  If ASYNC_PAN_ZOOM is
    * chosen, then RenderFrameParent will watch input events and use
    * them to asynchronously pan and zoom.
    */
-  RenderFrameParent(nsFrameLoader* aFrameLoader, bool* aSuccess);
+  explicit RenderFrameParent(nsFrameLoader* aFrameLoader);
   virtual ~RenderFrameParent();
 
   bool Init(nsFrameLoader* aFrameLoader);
   bool IsInitted();
   void Destroy();
 
   void BuildDisplayList(nsDisplayListBuilder* aBuilder,
                         nsSubDocumentFrame* aFrame,