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