Bug 1441009: Don't null-check OwnerDoc. r?smaug draft
authorEmilio Cobos Álvarez <emilio@crisal.io>
Sun, 25 Feb 2018 16:44:51 +0100
changeset 759535 1fd395b15f5563e11fa31c647c4d29531659d94d
parent 759534 c848f011dfca264c62fb670cb1b6304e241d8c65
child 759536 eacc295858a3369b23d2f6bff739ce85503149d7
push id100379
push userbmo:emilio@crisal.io
push dateSun, 25 Feb 2018 15:50:38 +0000
reviewerssmaug
bugs1441009
milestone60.0a1
Bug 1441009: Don't null-check OwnerDoc. r?smaug Can't return null. MozReview-Commit-ID: JzcNwmsCxIu
dom/base/FragmentOrElement.cpp
dom/canvas/CanvasRenderingContext2D.cpp
dom/ipc/TabParent.cpp
dom/plugins/base/nsPluginInstanceOwner.cpp
dom/svg/SVGViewportElement.h
--- a/dom/base/FragmentOrElement.cpp
+++ b/dom/base/FragmentOrElement.cpp
@@ -1019,18 +1019,17 @@ nsIContent::GetEventTargetParent(EventCh
                    aVisitor.mEventTargetAtParent != insertionParent),
                  "Retargeting and having insertion parent!");
     if (insertionParent) {
       parent = insertionParent;
     }
   }
 
   if (!aVisitor.mEvent->mFlags.mComposedInNativeAnonymousContent &&
-      IsRootOfNativeAnonymousSubtree() && OwnerDoc() &&
-      OwnerDoc()->GetWindow()) {
+      IsRootOfNativeAnonymousSubtree() && OwnerDoc()->GetWindow()) {
     aVisitor.SetParentTarget(OwnerDoc()->GetWindow()->GetParentTarget(), true);
   } else if (parent) {
     aVisitor.SetParentTarget(parent, false);
     if (slot) {
       ShadowRoot* root = slot->GetContainingShadow();
       if (root && root->IsClosed()) {
         aVisitor.mParentIsSlotInClosedTree = true;
       }
--- a/dom/canvas/CanvasRenderingContext2D.cpp
+++ b/dom/canvas/CanvasRenderingContext2D.cpp
@@ -1857,17 +1857,17 @@ CanvasRenderingContext2D::RegisterAlloca
     CycleCollectedJSRuntime::Get()->
       AddZoneWaitingForGC(JS::GetObjectZone(wrapper));
   }
 }
 
 static already_AddRefed<LayerManager>
 LayerManagerFromCanvasElement(nsINode* aCanvasElement)
 {
-  if (!aCanvasElement || !aCanvasElement->OwnerDoc()) {
+  if (!aCanvasElement) {
     return nullptr;
   }
 
   return nsContentUtils::PersistentLayerManagerForDocument(aCanvasElement->OwnerDoc());
 }
 
 bool
 CanvasRenderingContext2D::TrySkiaGLTarget(RefPtr<gfx::DrawTarget>& aOutDT,
@@ -1922,17 +1922,17 @@ CanvasRenderingContext2D::TrySkiaGLTarge
 
 bool
 CanvasRenderingContext2D::TrySharedTarget(RefPtr<gfx::DrawTarget>& aOutDT,
                                           RefPtr<layers::PersistentBufferProvider>& aOutProvider)
 {
   aOutDT = nullptr;
   aOutProvider = nullptr;
 
-  if (!mCanvasElement || !mCanvasElement->OwnerDoc()) {
+  if (!mCanvasElement) {
     return false;
   }
 
   if (mBufferProvider &&
       (mBufferProvider->GetType() == LayersBackend::LAYERS_CLIENT ||
        mBufferProvider->GetType() == LayersBackend::LAYERS_WR)) {
     // we are already using a shared buffer provider, we are allocating a new one
     // because the current one failed so let's just fall back to the basic provider.
@@ -4971,18 +4971,19 @@ CanvasRenderingContext2D::IsPointInPath(
 {
   if (!FloatValidate(aX, aY)) {
     return false;
   }
 
   // Check for site-specific permission and return false if no permission.
   if (mCanvasElement) {
     nsCOMPtr<nsIDocument> ownerDoc = mCanvasElement->OwnerDoc();
-    if (!ownerDoc || !CanvasUtils::IsImageExtractionAllowed(ownerDoc, aCx))
+    if (!CanvasUtils::IsImageExtractionAllowed(ownerDoc, aCx)) {
       return false;
+    }
   }
 
   EnsureUserSpacePath(aWinding);
   if (!mPath) {
     return false;
   }
 
   if (mPathTransformWillUpdate) {
@@ -5013,18 +5014,19 @@ CanvasRenderingContext2D::IsPointInStrok
 {
   if (!FloatValidate(aX, aY)) {
     return false;
   }
 
   // Check for site-specific permission and return false if no permission.
   if (mCanvasElement) {
     nsCOMPtr<nsIDocument> ownerDoc = mCanvasElement->OwnerDoc();
-    if (!ownerDoc || !CanvasUtils::IsImageExtractionAllowed(ownerDoc, aCx))
+    if (!CanvasUtils::IsImageExtractionAllowed(ownerDoc, aCx)) {
       return false;
+    }
   }
 
   EnsureUserSpacePath();
   if (!mPath) {
     return false;
   }
 
   const ContextState &state = CurrentState();
@@ -5882,18 +5884,17 @@ CanvasRenderingContext2D::GetImageDataAr
   dstWriteRect.MoveBy(-aX, -aY);
 
   // Check for site-specific permission.  This check is not needed if the
   // canvas was created with a docshell (that is only done for special
   // internal uses).
   bool usePlaceholder = false;
   if (mCanvasElement) {
     nsCOMPtr<nsIDocument> ownerDoc = mCanvasElement->OwnerDoc();
-    usePlaceholder = !ownerDoc ||
-      !CanvasUtils::IsImageExtractionAllowed(ownerDoc, aCx);
+    usePlaceholder = !CanvasUtils::IsImageExtractionAllowed(ownerDoc, aCx);
   }
 
   do {
     JS::AutoCheckCannotGC nogc;
     bool isShared;
     uint8_t* data = JS_GetUint8ClampedArrayData(darray, &isShared, nogc);
     MOZ_ASSERT(!isShared);        // Should not happen, data was created above
 
--- a/dom/ipc/TabParent.cpp
+++ b/dom/ipc/TabParent.cpp
@@ -311,17 +311,17 @@ TabParent::SetOwnerElement(Element* aEle
       Unused << SendSetWidgetNativeData(widgetNativeData);
     }
   }
 }
 
 void
 TabParent::AddWindowListeners()
 {
-  if (mFrameElement && mFrameElement->OwnerDoc()) {
+  if (mFrameElement) {
     if (nsCOMPtr<nsPIDOMWindowOuter> window = mFrameElement->OwnerDoc()->GetWindow()) {
       nsCOMPtr<EventTarget> eventTarget = window->GetTopWindowRoot();
       if (eventTarget) {
         eventTarget->AddEventListener(NS_LITERAL_STRING("MozUpdateWindowPos"),
                                       this, false, false);
       }
     }
   }
--- a/dom/plugins/base/nsPluginInstanceOwner.cpp
+++ b/dom/plugins/base/nsPluginInstanceOwner.cpp
@@ -492,17 +492,17 @@ NS_IMETHODIMP nsPluginInstanceOwner::Get
 {
   nsCOMPtr<nsIContent> content = do_QueryReferent(mContent);
   if (!aDocument || !content) {
     return NS_ERROR_NULL_POINTER;
   }
 
   // XXX sXBL/XBL2 issue: current doc or owner doc?
   // But keep in mind bug 322414 comment 33
-  NS_IF_ADDREF(*aDocument = content->OwnerDoc());
+  NS_ADDREF(*aDocument = content->OwnerDoc());
   return NS_OK;
 }
 
 NS_IMETHODIMP nsPluginInstanceOwner::InvalidateRect(NPRect *invalidRect)
 {
   // If our object frame has gone away, we won't be able to determine
   // up-to-date-ness, so just fire off the event.
   if (mWaitingForPaint && (!mPluginFrame || IsUpToDate())) {
@@ -3287,17 +3287,17 @@ void nsPluginInstanceOwner::SetFrame(nsP
 
     nsFocusManager* fm = nsFocusManager::GetFocusManager();
     const nsIContent* content = aFrame->GetContent();
     if (fm && content) {
       mContentFocused = (content == fm->GetFocusedContent());
     }
 
     // Register for widget-focus events on the window root.
-    if (content && content->OwnerDoc() && content->OwnerDoc()->GetWindow()) {
+    if (content && content->OwnerDoc()->GetWindow()) {
       nsCOMPtr<EventTarget> windowRoot = content->OwnerDoc()->GetWindow()->GetTopWindowRoot();
       if (windowRoot) {
         windowRoot->AddEventListener(NS_LITERAL_STRING("activate"),
                                            this, false, false);
         windowRoot->AddEventListener(NS_LITERAL_STRING("deactivate"),
                                            this, false, false);
         windowRoot->AddEventListener(NS_LITERAL_STRING("MozPerformDelayedBlur"),
                                            this, false, false);
--- a/dom/svg/SVGViewportElement.h
+++ b/dom/svg/SVGViewportElement.h
@@ -142,17 +142,17 @@ public:
   virtual nsSVGViewBox* GetViewBox() override;
 
 protected:
 
   // implementation helpers:
 
   bool IsRoot() const {
     NS_ASSERTION((IsInUncomposedDoc() && !GetParent()) ==
-                 (OwnerDoc() && (OwnerDoc()->GetRootElement() == this)),
+                 (OwnerDoc()->GetRootElement() == this),
                  "Can't determine if we're root");
     return IsInUncomposedDoc() && !GetParent();
   }
 
   /**
    * Returns true if either this is an SVG <svg> element that is the child of
    * another non-foreignObject SVG element, or this is a SVG <symbol> element
    * this is the root of a use-element shadow tree.