Add `SkIRect bounds()` convenience method to SkImageInfo and SkBitmap.

Review URL: https://codereview.chromium.org/646213003
diff --git a/gm/texturedomaineffect.cpp b/gm/texturedomaineffect.cpp
index acf0395..d235f7f 100644
--- a/gm/texturedomaineffect.cpp
+++ b/gm/texturedomaineffect.cpp
@@ -105,15 +105,14 @@
         textureMatrices.back().preRotate(45.f, texture->width() / 2.f, texture->height() / 2.f);
 
         const SkIRect texelDomains[] = {
-            SkIRect::MakeWH(fBmp.width(), fBmp.height()),
+            fBmp.bounds(),
             SkIRect::MakeXYWH(fBmp.width() / 4,
                               fBmp.height() / 4,
                               fBmp.width() / 2,
                               fBmp.height() / 2),
         };
 
-        SkRect renderRect = SkRect::MakeWH(SkIntToScalar(fBmp.width()),
-                                           SkIntToScalar(fBmp.height()));
+        SkRect renderRect = SkRect::Make(fBmp.bounds());
         renderRect.outset(kDrawPad, kDrawPad);
 
         SkScalar y = kDrawPad + kTestPad;
diff --git a/include/core/SkBitmap.h b/include/core/SkBitmap.h
index b36a1fd..cefc30a 100644
--- a/include/core/SkBitmap.h
+++ b/include/core/SkBitmap.h
@@ -220,6 +220,9 @@
     void getBounds(SkRect* bounds) const;
     void getBounds(SkIRect* bounds) const;
 
+    SkIRect bounds() const { return fInfo.bounds(); }
+    SkISize dimensions() const { return fInfo.dimensions(); }
+
     bool setInfo(const SkImageInfo&, size_t rowBytes = 0);
 
     /**
diff --git a/include/core/SkImageInfo.h b/include/core/SkImageInfo.h
index 7fedfa1..6fbaf6b 100644
--- a/include/core/SkImageInfo.h
+++ b/include/core/SkImageInfo.h
@@ -9,10 +9,11 @@
 #define SkImageInfo_DEFINED
 
 #include "SkMath.h"
+#include "SkRect.h"
 #include "SkSize.h"
 
-class SkWriteBuffer;
 class SkReadBuffer;
+class SkWriteBuffer;
 
 /**
  *  Describes how to interpret the alpha compoent of a pixel.
@@ -207,6 +208,7 @@
         return SkAlphaTypeIsOpaque(fAlphaType);
     }
 
+    SkIRect bounds() const { return SkIRect::MakeWH(fWidth, fHeight); }
     SkISize dimensions() const { return SkISize::Make(fWidth, fHeight); }
 
     /**
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index 2f7fcf4..bb6d1ba 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1260,7 +1260,7 @@
             SkIPoint offset = SkIPoint::Make(0, 0);
             SkMatrix matrix = *iter.fMatrix;
             matrix.postTranslate(SkIntToScalar(-pos.x()), SkIntToScalar(-pos.y()));
-            SkIRect clipBounds = SkIRect::MakeWH(bitmap.width(), bitmap.height());
+            const SkIRect clipBounds = bitmap.bounds();
             SkAutoTUnref<SkImageFilter::Cache> cache(iter.fDevice->getImageFilterCache());
             SkImageFilter::Context ctx(matrix, clipBounds, cache.get());
             if (filter->filterImage(&proxy, bitmap, ctx, &dst, &offset)) {
diff --git a/src/lazy/SkCachingPixelRef.cpp b/src/lazy/SkCachingPixelRef.cpp
index 1459567..5ab9656 100644
--- a/src/lazy/SkCachingPixelRef.cpp
+++ b/src/lazy/SkCachingPixelRef.cpp
@@ -45,9 +45,8 @@
     }
 
     const SkImageInfo& info = this->info();
-    if (!SkBitmapCache::Find(this->getGenerationID(),
-                             SkIRect::MakeWH(info.width(), info.height()),
-                             &fLockedBitmap)) {
+    if (!SkBitmapCache::Find(
+                this->getGenerationID(), info.bounds(), &fLockedBitmap)) {
         // Cache has been purged, must re-decode.
         if (!fLockedBitmap.tryAllocPixels(info, fRowBytes)) {
             fErrorInDecoding = true;
@@ -58,9 +57,8 @@
             return false;
         }
         fLockedBitmap.setImmutable();
-        SkBitmapCache::Add(this->getGenerationID(),
-                           SkIRect::MakeWH(info.width(), info.height()),
-                           fLockedBitmap);
+        SkBitmapCache::Add(
+                this->getGenerationID(), info.bounds(), fLockedBitmap);
     }
 
     // Now bitmap should contain a concrete PixelRef of the decoded image.
diff --git a/src/pdf/SkPDFDevice.cpp b/src/pdf/SkPDFDevice.cpp
index 8509de8..b14ca72 100644
--- a/src/pdf/SkPDFDevice.cpp
+++ b/src/pdf/SkPDFDevice.cpp
@@ -745,7 +745,7 @@
     fInitialTransform.preConcat(initialTransform);
     fLegacyBitmap.setInfo(info);
 
-    SkIRect existingClip = SkIRect::MakeWH(info.width(), info.height());
+    SkIRect existingClip = info.bounds();
     fExistingClipRegion.setRect(existingClip);
     this->init();
 }
@@ -2181,7 +2181,7 @@
     scaled.setScale(SK_Scalar1, -SK_Scalar1);
     scaled.postTranslate(0, SK_Scalar1);
     // Scale the image up from 1x1 to WxH.
-    SkIRect subset = SkIRect::MakeWH(bitmap->width(), bitmap->height());
+    SkIRect subset = bitmap->bounds();
     scaled.postScale(SkIntToScalar(subset.width()),
                      SkIntToScalar(subset.height()));
     scaled.postConcat(matrix);
diff --git a/tests/ImageNewShaderTest.cpp b/tests/ImageNewShaderTest.cpp
index dfc5a24..1bc77fb 100644
--- a/tests/ImageNewShaderTest.cpp
+++ b/tests/ImageNewShaderTest.cpp
@@ -56,7 +56,7 @@
     destinationCanvas->clear(SK_ColorTRANSPARENT);
     destinationCanvas->drawPaint(paint);
 
-    SkIRect rect = SkIRect::MakeWH(info.width(), info.height());
+    SkIRect rect = info.bounds();
 
     SkBitmap bmOrig;
     sourceSurface->getCanvas()->readPixels(rect, &bmOrig);
diff --git a/tests/WritePixelsTest.cpp b/tests/WritePixelsTest.cpp
index 567d994..eca5ade 100644
--- a/tests/WritePixelsTest.cpp
+++ b/tests/WritePixelsTest.cpp
@@ -195,7 +195,7 @@
     // At some point this will be unsupported, as we won't allow accessBitmap() to magically call
     // readPixels for the client.
     SkBitmap secretDevBitmap;
-    canvas->readPixels(SkIRect::MakeWH(canvasInfo.width(), canvasInfo.height()), &secretDevBitmap);
+    canvas->readPixels(canvasInfo.bounds(), &secretDevBitmap);
 
     SkAutoLockPixels alp(secretDevBitmap);
     canvasRowBytes = secretDevBitmap.rowBytes();