Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(210)

Unified Diff: chrome/browser/chromeos/login/users/avatar/user_image_loader.h

Issue 931993002: Make image_decoder a Leaky LazyInstance (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Small changes based on review from Antony Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..3c3834c0198bec562e2f31c1ef056538f5ee79fd 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,7 @@
#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 <queue>
#include <string>
#include "base/callback.h"
@@ -67,7 +67,16 @@ class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader>,
const LoadedCallback loaded_cb;
};
- typedef std::map<const ImageDecoder*, ImageInfo> ImageInfoMap;
+ // Contains attributes retain for after the image is decoded.
+ struct ImageData {
+ ImageData(const ImageInfo& image_info, const std::string& data);
+ ~ImageData();
+
+ const ImageInfo image_info;
+ std::vector<unsigned char> data;
+ };
+
+ typedef std::queue<ImageData> ImageDataQueue;
~UserImageLoader() override;
@@ -82,9 +91,8 @@ class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader>,
// 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;
+ void OnImageDecoded(const SkBitmap& decoded_image) override;
+ void OnDecodeImageFailed() override;
// The foreground task runner on which |this| is instantiated, Start() is
// called and LoadedCallbacks are invoked.
@@ -99,7 +107,7 @@ class UserImageLoader : public base::RefCountedThreadSafe<UserImageLoader>,
// Holds information about the images currently being decoded. Accessed via
// |background_task_runner_| only.
- ImageInfoMap image_info_map_;
+ ImageDataQueue image_data_queue_;
DISALLOW_COPY_AND_ASSIGN(UserImageLoader);
};

Powered by Google App Engine
This is Rietveld 408576698