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

Unified Diff: chrome/browser/icon_manager.h

Issue 2440273002: Clean up the IconLoader. (Closed)
Patch Set: nits Created 4 years 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
« no previous file with comments | « chrome/browser/icon_loader_win.cc ('k') | chrome/browser/icon_manager.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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);
};
« no previous file with comments | « chrome/browser/icon_loader_win.cc ('k') | chrome/browser/icon_manager.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698