Bug 1392502 - Fix 2d/3d transform check in StackingContextHelper. r=mtseng draft
authorEthan Lin <ethlin@mozilla.com>
Tue, 22 Aug 2017 14:40:39 +0800
changeset 650300 c0c1cb582698e077cd2cfd1a8a3da86d70f2152f
parent 650228 128a79130ecd6f277190d031a623f991c73c5272
child 727363 c2b74433a9f0f69b1b337f6bb2068f1699f89b7c
push id75342
push userbmo:ethlin@mozilla.com
push dateTue, 22 Aug 2017 06:42:00 +0000
reviewersmtseng
bugs1392502
milestone57.0a1
Bug 1392502 - Fix 2d/3d transform check in StackingContextHelper. r=mtseng MozReview-Commit-ID: DYY7wBWrrlv
gfx/layers/wr/StackingContextHelper.cpp
--- a/gfx/layers/wr/StackingContextHelper.cpp
+++ b/gfx/layers/wr/StackingContextHelper.cpp
@@ -74,17 +74,17 @@ StackingContextHelper::StackingContextHe
                                              float* aOpacityPtr,
                                              gfx::Matrix4x4* aTransformPtr,
                                              gfx::Matrix4x4* aPerspectivePtr,
                                              const nsTArray<wr::WrFilterOp>& aFilters,
                                              const gfx::CompositionOp& aMixBlendMode)
   : mBuilder(&aBuilder)
 {
   nsRect visibleRect;
-  bool is2d = aTransformPtr && aTransformPtr->Is2D() && !aPerspectivePtr;
+  bool is2d = !aTransformPtr || (aTransformPtr->Is2D() && !aPerspectivePtr);
   if (is2d) {
     nsRect itemBounds = aDisplayList->GetClippedBoundsWithRespectToASR(aDisplayListBuilder, aItem->GetActiveScrolledRoot());
     nsRect childrenVisible = aItem->GetVisibleRectForChildren();
     visibleRect = itemBounds.Intersect(childrenVisible);
   } else {
     visibleRect = aDisplayList->GetBounds(aDisplayListBuilder);
     // The position of bounds are calculated by transform and perspective matrix in 3d case. reset it to (0, 0)
     visibleRect.MoveTo(0, 0);