DM: JSON Debug Sink

Currently, the following GMs crash the debug canvas:
    ~dont_clip_to_layer
    ~imageblur
    ~imagefilterscropped
    ~pictureimagefilter
    ~savelayer_lcdtext
    ~textfilter_image
// TODO(halcanary): fix this.

GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=3742

Change-Id: Ieed3502119cd639fe345f3a41d436d5e39f3bdf1
Reviewed-on: https://skia-review.googlesource.com/3742
Reviewed-by: Mike Klein <mtklein@chromium.org>
Commit-Queue: Hal Canary <halcanary@google.com>
diff --git a/dm/DMSrcSink.h b/dm/DMSrcSink.h
index 4be9878..cad15c7 100644
--- a/dm/DMSrcSink.h
+++ b/dm/DMSrcSink.h
@@ -374,6 +374,13 @@
     SinkFlags flags() const override { return SinkFlags{ SinkFlags::kVector, SinkFlags::kDirect }; }
 };
 
+class DebugSink : public Sink {
+public:
+    Error draw(const Src&, SkBitmap*, SkWStream*, SkString*) const override;
+    const char* fileExtension() const override { return "json"; }
+    SinkFlags flags() const override { return SinkFlags{ SinkFlags::kVector, SinkFlags::kDirect }; }
+};
+
 class SVGSink : public Sink {
 public:
     SVGSink();