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);