Index: chrome/browser/icon_manager.h |
diff --git a/chrome/browser/icon_manager.h b/chrome/browser/icon_manager.h |
index 0b5ec07d416154d7ab1fe8201af40efa2ab0225c..43c36acedc0e64f6e91e00f4e7c84878081fe16a 100644 |
--- a/chrome/browser/icon_manager.h |
+++ b/chrome/browser/icon_manager.h |
@@ -34,7 +34,7 @@ |
// 2. An asynchronous icon load from a file on the file thread: |
// IconManager::LoadIcon() |
// |
-// When using the second (asychronous) method, callers must supply a callback |
+// When using the second (asynchronous) method, callers must supply a callback |
// which will be run once the icon has been extracted. The icon manager will |
// cache the results of the icon extraction so that subsequent lookups will be |
// fast. |
@@ -46,6 +46,7 @@ |
#define CHROME_BROWSER_ICON_MANAGER_H_ |
#include <map> |
+#include <memory> |
#include "base/files/file_path.h" |
#include "base/macros.h" |
@@ -59,14 +60,14 @@ class IconManager : public IconLoader::Delegate { |
~IconManager() override; |
// Synchronous call to examine the internal caches for the icon. Returns the |
- // icon if we have already loaded it, NULL if we don't have it and must load |
- // it via 'LoadIcon'. The returned bitmap is owned by the IconManager and must |
- // not be free'd by the caller. If the caller needs to modify the icon, it |
- // must make a copy and modify the copy. |
- gfx::Image* LookupIconFromFilepath(const base::FilePath& file_name, |
+ // icon if we have already loaded it, or null if we don't have it and must |
+ // load it via LoadIcon(). The returned bitmap is owned by the IconManager and |
+ // must not be free'd by the caller. If the caller needs to modify the icon, |
+ // it must make a copy and modify the copy. |
+ gfx::Image* LookupIconFromFilepath(const base::FilePath& file_path, |
IconLoader::IconSize size); |
- typedef base::Callback<void(gfx::Image*)> IconRequestCallback; |
+ using IconRequestCallback = base::Callback<void(gfx::Image*)>; |
// Asynchronous call to lookup and return the icon associated with file. The |
// work is done on the file thread, with the callbacks running on the thread |
@@ -76,7 +77,7 @@ class IconManager : public IconLoader::Delegate { |
// 1. This does *not* check the cache. |
// 2. The returned bitmap pointer is *not* owned by callback. So callback |
// should never keep it or delete it. |
- // 3. The gfx::Image pointer passed to the callback may be NULL if decoding |
+ // 3. The gfx::Image pointer passed to the callback will be null if decoding |
// failed. |
base::CancelableTaskTracker::TaskId LoadIcon( |
const base::FilePath& file_name, |
@@ -84,36 +85,28 @@ class IconManager : public IconLoader::Delegate { |
const IconRequestCallback& callback, |
base::CancelableTaskTracker* tracker); |
+ private: |
// IconLoader::Delegate interface. |
- bool OnGroupLoaded(IconLoader* loader, const IconGroupID& group) override; |
- bool OnImageLoaded(IconLoader* loader, |
- gfx::Image* result, |
- const IconGroupID& group) override; |
+ void OnImageLoaded(IconLoader* loader, |
+ std::unique_ptr<gfx::Image> result, |
+ const IconLoader::IconGroup& group) override; |
- private: |
struct CacheKey { |
- CacheKey(const IconGroupID& group, IconLoader::IconSize size); |
+ CacheKey(const IconLoader::IconGroup& group, IconLoader::IconSize size); |
// Used as a key in the map below, so we need this comparator. |
bool operator<(const CacheKey &other) const; |
- IconGroupID group; |
+ IconLoader::IconGroup group; |
IconLoader::IconSize size; |
}; |
- gfx::Image* LookupIconFromGroup(const IconGroupID& group, |
- IconLoader::IconSize size); |
- |
- typedef std::map<CacheKey, gfx::Image*> IconMap; |
- IconMap icon_cache_; |
- |
- typedef std::map<base::FilePath, IconGroupID> GroupMap; |
- GroupMap group_cache_; |
+ std::map<base::FilePath, IconLoader::IconGroup> group_cache_; |
+ std::map<CacheKey, std::unique_ptr<gfx::Image>> icon_cache_; |
// Asynchronous requests that have not yet been completed. |
struct ClientRequest; |
- typedef std::map<IconLoader*, ClientRequest> ClientRequests; |
- ClientRequests requests_; |
+ std::map<IconLoader*, ClientRequest> requests_; |
DISALLOW_COPY_AND_ASSIGN(IconManager); |
}; |