DM: SKP source / PDF backend

Removed expectations code for PDF backend for now, given that we don't have any, and refactored a little to make that cleaner.

We can now test .skp -> .pdf -> .png in DM.  Neat eh?

BUG=skia:2598
R=halcanary@google.com, mtklein@google.com

Author: mtklein@chromium.org

Review URL: https://codereview.chromium.org/316643003
diff --git a/dm/DMPDFTask.h b/dm/DMPDFTask.h
index d273df6..d107611 100644
--- a/dm/DMPDFTask.h
+++ b/dm/DMPDFTask.h
@@ -1,27 +1,33 @@
 #ifndef DMPDFTask_DEFINED
 #define DMPDFTask_DEFINED
 
-#include "DMPDFRasterizeTask.h"
 #include "DMExpectations.h"
+#include "DMPDFRasterizeTask.h"
 #include "DMTask.h"
 #include "SkBitmap.h"
+#include "SkPicture.h"
 #include "SkString.h"
 #include "SkTemplates.h"
 #include "gm.h"
 
 namespace DM {
 
-// This task renders a GM using Skia's PDF backend.
+// This task renders a GM or SKP using Skia's PDF backend.
 // If rasterizePdfProc is non-NULL, it will spawn a PDFRasterizeTask.
 class PDFTask : public CpuTask {
 public:
-    PDFTask(const char* suffix,
+    PDFTask(const char*,
             Reporter*,
             TaskRunner*,
-            const Expectations&,
             skiagm::GMRegistry::Factory,
             RasterizePdfProc);
 
+    PDFTask(Reporter*,
+            TaskRunner*,
+            SkPicture*,
+            SkString name,
+            RasterizePdfProc);
+
     virtual void draw() SK_OVERRIDE;
 
     virtual bool shouldSkip() const SK_OVERRIDE;
@@ -29,9 +35,11 @@
     virtual SkString name() const SK_OVERRIDE { return fName; }
 
 private:
+    // One of these two will be set.
     SkAutoTDelete<skiagm::GM> fGM;
+    SkAutoTUnref<SkPicture> fPicture;
+
     const SkString fName;
-    const Expectations& fExpectations;
     RasterizePdfProc fRasterize;
 };