Bug 1252739 - nsStyleImageLayers::HasLayerWithImage should return true when we have mask-image:<element-reference> | <gradient> draft
authorCJKu <cku@mozilla.com>
Wed, 02 Mar 2016 12:15:11 +0800
changeset 336028 0c7fc21306d1a47521b4b1275328660df1646d41
parent 335982 eb25b90a05c194bfd4f498ff3ffee7440f85f1cd
child 515280 bbaf4238d08dc1e5541acb48430662d2f440f85d
push id11948
push usercku@mozilla.com
push dateWed, 02 Mar 2016 04:15:31 +0000
bugs1252739
milestone47.0a1
Bug 1252739 - nsStyleImageLayers::HasLayerWithImage should return true when we have mask-image:<element-reference> | <gradient> MozReview-Commit-ID: LMPSewQlHjz
layout/style/nsStyleStruct.cpp
--- a/layout/style/nsStyleStruct.cpp
+++ b/layout/style/nsStyleStruct.cpp
@@ -2362,17 +2362,22 @@ nsStyleImageLayers::CalcDifference(const
 
   return hint;
 }
 
 bool
 nsStyleImageLayers::HasLayerWithImage() const
 {
   for (uint32_t i = 0; i < mImageCount; i++) {
-    if (mLayers[i].mSourceURI) {
+    // mLayers[i].mSourceURI can be nullptr if mask-image prop value is
+    // <element-reference> or <gradient>
+    // mLayers[i].mImage can be empty if mask-image prop value is a reference
+    // to SVG mask element.
+    // So we need to test both mSourceURI and mImage.
+    if (mLayers[i].mSourceURI || !mLayers[i].mImage.IsEmpty()) {
       return true;
     }
   }
 
   return false;
 }
 
 bool