Index: chrome/browser/chromeos/login/users/avatar/user_image_loader.h |
diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_loader.h b/chrome/browser/chromeos/login/users/avatar/user_image_loader.h |
index 10c7be458e2e89630835d0ca95f05666b40e3a52..98cd8185015afd41bf58f6645b507c56570f0022 100644 |
--- a/chrome/browser/chromeos/login/users/avatar/user_image_loader.h |
+++ b/chrome/browser/chromeos/login/users/avatar/user_image_loader.h |
@@ -5,7 +5,6 @@ |
#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_USERS_AVATAR_USER_IMAGE_LOADER_H_ |
#define CHROME_BROWSER_CHROMEOS_LOGIN_USERS_AVATAR_USER_IMAGE_LOADER_H_ |
-#include <map> |
#include <string> |
#include "base/callback.h" |
@@ -27,8 +26,7 @@ namespace chromeos { |
// Helper that reads, decodes and optionally resizes an image on a background |
// thread. Returns the image in the form of an SkBitmap. |
-class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader>, |
- public ImageDecoder::Delegate { |
+class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader> { |
public: |
// Callback used to return the result of an image load operation. |
typedef base::Callback<void(const user_manager::UserImage& user_image)> |
@@ -67,9 +65,26 @@ class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader>, |
const LoadedCallback loaded_cb; |
}; |
- typedef std::map<const ImageDecoder*, ImageInfo> ImageInfoMap; |
+ class UserImageRequest : public ImageDecoder::ImageRequest { |
+ public: |
+ UserImageRequest(const ImageInfo& image_info, |
+ const std::string& image_data, |
+ UserImageLoader* user_image_loader); |
- ~UserImageLoader() override; |
+ // ImageDecoder::ImageRequest implementation. These callbacks will only be |
+ // invoked via the |background_task_runner_|. |
+ void OnImageDecoded(const SkBitmap& decoded_image) override; |
+ void OnDecodeImageFailed() override; |
+ |
+ private: |
+ ~UserImageRequest() override; |
+ |
+ const ImageInfo image_info_; |
+ std::vector<unsigned char> image_data_; |
+ UserImageLoader* user_image_loader_; |
+ }; |
+ |
+ ~UserImageLoader(); |
// Reads the image from |image_info.file_path| and starts the decoding |
// process. This method may only be invoked via the |background_task_runner_|. |
@@ -80,12 +95,6 @@ class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader>, |
void DecodeImage(const scoped_ptr<std::string> data, |
const ImageInfo& image_info); |
- // ImageDecoder::Delegate implementation. These callbacks will only be invoked |
- // via the |background_task_runner_|. |
- void OnImageDecoded(const ImageDecoder* decoder, |
- const SkBitmap& decoded_image) override; |
- void OnDecodeImageFailed(const ImageDecoder* decoder) override; |
- |
// The foreground task runner on which |this| is instantiated, Start() is |
// called and LoadedCallbacks are invoked. |
scoped_refptr<base::SequencedTaskRunner> foreground_task_runner_; |
@@ -97,10 +106,6 @@ class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader>, |
// Specify how the file should be decoded in the utility process. |
const ImageDecoder::ImageCodec image_codec_; |
- // Holds information about the images currently being decoded. Accessed via |
- // |background_task_runner_| only. |
- ImageInfoMap image_info_map_; |
- |
DISALLOW_COPY_AND_ASSIGN(UserImageLoader); |
}; |