Making SkDeferredCanvas::silentFlush trigger a skippedPendingDrawCommands callback

The bug was preventing Canvas2DLayerBridge from properly tracking changes
in memory consumption that were triggered by calls to silentFlush.

BUG=344666
TEST=DeferredCanvas unit test
R=senorblanco@google.com, senorblanco@chromium.org

Author: junov@chromium.org

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

git-svn-id: http://skia.googlecode.com/svn/trunk@13965 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/src/utils/SkDeferredCanvas.cpp b/src/utils/SkDeferredCanvas.cpp
index 2c5e530..4836cd7 100644
--- a/src/utils/SkDeferredCanvas.cpp
+++ b/src/utils/SkDeferredCanvas.cpp
@@ -324,9 +324,6 @@
         if (fPipeController.hasPendingCommands()) {
             fFreshFrame = true;
             flushPendingCommands(kSilent_PlaybackMode);
-            if (fNotificationClient) {
-                fNotificationClient->skippedPendingDrawCommands();
-            }
         }
     }
 }
@@ -363,9 +360,14 @@
     }
     fPipeWriter.flushRecording(true);
     fPipeController.playback(kSilent_PlaybackMode == playbackMode);
-    if (playbackMode == kNormal_PlaybackMode && fNotificationClient) {
-        fNotificationClient->flushedDrawCommands();
+    if (fNotificationClient) {
+        if (playbackMode == kSilent_PlaybackMode) {
+            fNotificationClient->skippedPendingDrawCommands();
+        } else {
+            fNotificationClient->flushedDrawCommands();
+        }
     }
+
     fPreviousStorageAllocated = storageAllocatedForRecording();
 }