Resurrect SkDebugger

Can't let go <sniffle>.

R=robertphillips@google.com

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

Change-Id: Ida5936d17af2ef60c3f50e27b4f4987a79165fa5
Reviewed-on: https://skia-review.googlesource.com/4793
Reviewed-by: Robert Phillips <robertphillips@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
diff --git a/debugger/SkDebugger.cpp b/debugger/SkDebugger.cpp
index 6639d2c..197a27f 100644
--- a/debugger/SkDebugger.cpp
+++ b/debugger/SkDebugger.cpp
@@ -7,31 +7,24 @@
  */
 
 #include "SkDebugger.h"
+#include "SkMakeUnique.h"
 #include "SkPictureRecorder.h"
 #include "SkString.h"
 
 
 SkDebugger::SkDebugger()
-    : fPicture(nullptr)
-    , fIndex(-1) {
-    // Create this some other dynamic way?
-    fDebugCanvas = new SkDebugCanvas(0, 0);
-}
+    : fDebugCanvas(skstd::make_unique<SkDebugCanvas>(0, 0))
+    , fIndex(-1) { }
 
-SkDebugger::~SkDebugger() {
-    // Need to inherit from SkRef object in order for following to work
-    SkSafeUnref(fDebugCanvas);
-    SkSafeUnref(fPicture);
-}
+SkDebugger::~SkDebugger() {}
 
 void SkDebugger::loadPicture(SkPicture* picture) {
-    SkRefCnt_SafeAssign(fPicture, picture);
-
-    delete fDebugCanvas;
-    fDebugCanvas = new SkDebugCanvas(SkScalarCeilToInt(this->pictureCull().width()), 
-                                     SkScalarCeilToInt(this->pictureCull().height()));
+    fPicture = sk_ref_sp(picture);
+    fDebugCanvas = skstd::make_unique<SkDebugCanvas>(
+        SkScalarCeilToInt(this->pictureCull().width()),
+        SkScalarCeilToInt(this->pictureCull().height()));
     fDebugCanvas->setPicture(picture);
-    picture->playback(fDebugCanvas);
+    picture->playback(fDebugCanvas.get());
     fDebugCanvas->setPicture(nullptr);
     fIndex = fDebugCanvas->getSize() - 1;
 }