Refactor SoftwareImageDecodeController to make adding support for
medium quality more readable and natural.

BUG=594839
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

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

Cr-Commit-Position: refs/heads/master@{#387426}
diff --git a/cc/tiles/software_image_decode_controller.h b/cc/tiles/software_image_decode_controller.h
index a94c45f7..9697720 100644
--- a/cc/tiles/software_image_decode_controller.h
+++ b/cc/tiles/software_image_decode_controller.h
@@ -211,6 +211,19 @@
   DecodedDrawImage GetDecodedImageForDrawInternal(const ImageKey& key,
                                                   const DrawImage& draw_image);
 
+  // GetOriginalImageDecode is called by DecodeImageInternal when the quality
+  // does not scale the image. Like DecodeImageInternal, it should be called
+  // with no lock acquired and it returns nullptr if the decoding failed.
+  std::unique_ptr<DecodedImage> GetOriginalImageDecode(const ImageKey& key,
+                                                       const SkImage& image);
+
+  // GetScaledImageDecode is called by DecodeImageInternal when the quality
+  // requires the image be scaled. Like DecodeImageInternal, it should be
+  // called with no lock acquired and it returns nullptr if the decoding or
+  // scaling failed.
+  std::unique_ptr<DecodedImage> GetScaledImageDecode(const ImageKey& key,
+                                                     const SkImage& image);
+
   void SanityCheckState(int line, bool lock_acquired);
   void RefImage(const ImageKey& key);
   void RefAtRasterImage(const ImageKey& key);