Revert of option to quick-accept clipRect calls (patchset #3 id:40001 of https://codereview.chromium.org/1458913005/ )

Reason for revert:
Breaking tests on Android:

D/skia    ( 4469):
D/skia    ( 4469): Failures:
D/skia    ( 4469): 	../../../tests/CanvasStateTest.cpp:325	clipStackBounds.width() == WIDTH
D/skia    ( 4469): 	../../../tests/CanvasStateTest.cpp:326	clipStackBounds.height() == HEIGHT
D/skia    ( 4469): 2 failures

http://build.chromium.org/p/client.skia.android/builders/Test-Android-GCC-NexusPlayer-CPU-SSE4-x86-Debug/builds/1387/steps/dm/logs/stdio

Original issue's description:
> option to quick-accept clipRect calls
>
> BUG=skia:
>
> Committed: https://skia.googlesource.com/skia/+/90ba095c459e38581353073826785074b5953b8c

TBR=robertphillips@google.com,fmalita@chromium.org,reed@google.com
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG=skia:

Review URL: https://codereview.chromium.org/1471513002
diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp
index ef7b1e7..895d36f 100644
--- a/src/core/SkCanvas.cpp
+++ b/src/core/SkCanvas.cpp
@@ -1508,44 +1508,24 @@
     }
 #endif
 
-    if (!fAllowSoftClip) {
-        edgeStyle = kHard_ClipEdgeStyle;
-    }
-
-    const bool rectStaysRect = fMCRec->fMatrix.rectStaysRect();
-    SkRect devR;
-    if (rectStaysRect) {
-        fMCRec->fMatrix.mapRect(&devR, rect);
-    }
-
-    // Check if we can quick-accept the clip call (and do nothing)
-    //
-    // TODO: investigate if a (conservative) version of this could be done in ::clipRect,
-    //       so that subclasses (like PictureRecording) didn't see unnecessary clips, which in turn
-    //       might allow lazy save/restores to eliminate entire save/restore blocks.
-    //
-    if (SkRegion::kIntersect_Op == op &&
-        kHard_ClipEdgeStyle == edgeStyle
-        && rectStaysRect)
-    {
-        if (devR.round().contains(fMCRec->fRasterClip.getBounds())) {
-#if 0
-            SkDebugf("------- ignored clipRect [%g %g %g %g]\n",
-                     rect.left(), rect.top(), rect.right(), rect.bottom());
-#endif
-            return;
-        }
-    }
-
     AutoValidateClip avc(this);
 
     fDeviceCMDirty = true;
     fCachedLocalClipBoundsDirty = true;
+    if (!fAllowSoftClip) {
+        edgeStyle = kHard_ClipEdgeStyle;
+    }
 
-    if (rectStaysRect) {
-        const bool isAA = kSoft_ClipEdgeStyle == edgeStyle;
-        fClipStack->clipDevRect(devR, op, isAA);
-        fMCRec->fRasterClip.op(devR, this->getBaseLayerSize(), op, isAA);
+    if (fMCRec->fMatrix.rectStaysRect()) {
+        // for these simpler matrices, we can stay a rect even after applying
+        // the matrix. This means we don't have to a) make a path, and b) tell
+        // the region code to scan-convert the path, only to discover that it
+        // is really just a rect.
+        SkRect      r;
+
+        fMCRec->fMatrix.mapRect(&r, rect);
+        fClipStack->clipDevRect(r, op, kSoft_ClipEdgeStyle == edgeStyle);
+        fMCRec->fRasterClip.op(r, this->getBaseLayerSize(), op, kSoft_ClipEdgeStyle == edgeStyle);
     } else {
         // since we're rotated or some such thing, we convert the rect to a path
         // and clip against that, since it can handle any matrix. However, to