add annotations to debugger

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

Review-Url: https://codereview.chromium.org/2105113002
diff --git a/tools/debugger/SkDrawCommand.h b/tools/debugger/SkDrawCommand.h
index 9b81ada..0d1ece0 100644
--- a/tools/debugger/SkDrawCommand.h
+++ b/tools/debugger/SkDrawCommand.h
@@ -28,6 +28,7 @@
         kClipRect_OpType,
         kClipRRect_OpType,
         kConcat_OpType,
+        kDrawAnnotation_OpType,
         kDrawBitmap_OpType,
         kDrawBitmapNine_OpType,
         kDrawBitmapRect_OpType,
@@ -247,6 +248,21 @@
     typedef SkDrawCommand INHERITED;
 };
 
+class SkDrawAnnotationCommand : public SkDrawCommand {
+public:
+    SkDrawAnnotationCommand(const SkRect&, const char key[], sk_sp<SkData> value);
+    void execute(SkCanvas* canvas) const override;
+    Json::Value toJSON(UrlDataManager& urlDataManager) const override;
+    static SkDrawAnnotationCommand* fromJSON(Json::Value& command, UrlDataManager& urlDataManager);
+
+private:
+    SkRect          fRect;
+    SkString        fKey;
+    sk_sp<SkData>   fValue;
+
+    typedef SkDrawCommand INHERITED;
+};
+
 class SkDrawBitmapCommand : public SkDrawCommand {
 public:
     SkDrawBitmapCommand(const SkBitmap& bitmap, SkScalar left, SkScalar top,