SkRectShaderImageFilter: add a workaround for the zero-sized rects currently passed by Blink.

BUG=306488
R=robertphillips@google.com, robertphillips

Review URL: https://codereview.chromium.org/26799004

git-svn-id: http://skia.googlecode.com/svn/trunk/src@11733 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/effects/SkRectShaderImageFilter.cpp b/effects/SkRectShaderImageFilter.cpp
index b1faebc..37d6af2 100644
--- a/effects/SkRectShaderImageFilter.cpp
+++ b/effects/SkRectShaderImageFilter.cpp
@@ -16,9 +16,17 @@
     SkASSERT(s);
 #ifdef SK_CROP_RECT_IS_INT
     SkIRect cropRect;
-    rect.roundOut(&cropRect);
+    if (rect.width() == 0 || rect.height() == 0) {
+        cropRect = SkIRect::MakeLargest();
+    } else {
+        rect.roundOut(&cropRect);
+    }
 #else
-    CropRect cropRect(rect);
+    uint32_t flags = CropRect::kHasAll_CropEdge;
+    if (rect.width() == 0 || rect.height() == 0) {
+        flags = 0x0;
+    }
+    CropRect cropRect(rect, flags);
 #endif
     return SkNEW_ARGS(SkRectShaderImageFilter, (s, &cropRect));
 }