Fixing deferred canvases so that they do not return deferred devices on createCompatibleDevice

TEST= DeferredCanvas unit test.

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

git-svn-id: http://skia.googlecode.com/svn/trunk@9224 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp
index c181818..f2aae06 100644
--- a/src/utils/SkDeferredCanvas.cpp
+++ b/src/utils/SkDeferredCanvas.cpp
@@ -475,12 +475,11 @@
     // Save layer usage not supported, and not required by SkDeferredCanvas.
     SkASSERT(usage != kSaveLayer_Usage);
     // Create a compatible non-deferred device.
-    SkAutoTUnref<SkDevice> compatibleDevice
-        (immediateDevice()->createCompatibleDevice(config, width, height,
-            isOpaque));
-    DeferredDevice* device = SkNEW_ARGS(DeferredDevice, (compatibleDevice));
-    device->setNotificationClient(fNotificationClient);
-    return device;
+    // We do not create a deferred device because we know the new device
+    // will not be used with a deferred canvas (there is no API for that).
+    // And connecting a DeferredDevice to non-deferred canvas can result
+    // in unpredictable behavior.
+    return immediateDevice()->createCompatibleDevice(config, width, height, isOpaque);
 }
 
 bool DeferredDevice::onReadPixels(