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

Unified Diff: chrome/browser/profiles/profile_info_cache.h

Issue 8539043: Refactor ProfileInfoCache (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 1 month 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/profiles/profile_impl.cc ('k') | chrome/browser/profiles/profile_info_cache.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/profiles/profile_info_cache.h
diff --git a/chrome/browser/profiles/profile_info_cache.h b/chrome/browser/profiles/profile_info_cache.h
index 345503c59e777a52a9822f0f6fdedc1922deecf5..017341bc89bed3ef4e81999ba5c04976f84b7626 100644
--- a/chrome/browser/profiles/profile_info_cache.h
+++ b/chrome/browser/profiles/profile_info_cache.h
@@ -7,6 +7,7 @@
#pragma once
#include <string>
+#include <map>
#include <vector>
#include "base/basictypes.h"
@@ -14,18 +15,10 @@
#include "base/file_path.h"
#include "base/string16.h"
#include "chrome/browser/profiles/profile_info_interface.h"
-
-namespace gfx {
-class Image;
-}
-
-namespace base {
-class DictionaryValue;
-}
+#include "chrome/browser/profiles/profile_info_entry.h"
class PrefService;
-
// This class saves various information about profiles to local preferences.
// This cache can be used to display a list of profiles without having to
// actually load the profiles from disk.
@@ -34,81 +27,30 @@ class ProfileInfoCache : public ProfileInfoInterface {
ProfileInfoCache(PrefService* prefs, const FilePath& user_data_dir);
virtual ~ProfileInfoCache();
- void AddProfileToCache(const FilePath& profile_path,
- const string16& name,
- const string16& username,
- size_t icon_index);
- void DeleteProfileFromCache(const FilePath& profile_path);
-
// ProfileInfoInterface:
virtual size_t GetNumberOfProfiles() const OVERRIDE;
- // Don't cache this value and reuse, because resorting the menu could cause
- // the item being referred to to change out from under you.
- virtual size_t GetIndexOfProfileWithPath(
- const FilePath& profile_path) const OVERRIDE;
- virtual string16 GetNameOfProfileAtIndex(size_t index) const OVERRIDE;
- virtual FilePath GetPathOfProfileAtIndex(size_t index) const OVERRIDE;
- virtual string16 GetUserNameOfProfileAtIndex(size_t index) const OVERRIDE;
- virtual const gfx::Image& GetAvatarIconOfProfileAtIndex(
- size_t index) const OVERRIDE;
- virtual bool GetBackgroundStatusOfProfileAtIndex(
- size_t index) const OVERRIDE;
-
- size_t GetAvatarIconIndexOfProfileAtIndex(size_t index) const;
-
- void SetNameOfProfileAtIndex(size_t index, const string16& name);
- void SetUserNameOfProfileAtIndex(size_t index, const string16& user_name);
- void SetAvatarIconOfProfileAtIndex(size_t index, size_t icon_index);
- void SetBackgroundStatusOfProfileAtIndex(size_t index,
- bool running_background_apps);
-
- // Returns unique name that can be assigned to a newly created profile.
- string16 ChooseNameForNewProfile(size_t icon_index);
-
- // Returns an avatar icon index that can be assigned to a newly created
- // profile. Note that the icon may not be unique since there are a limited
- // set of default icons.
- size_t ChooseAvatarIconIndexForNewProfile() const;
- const FilePath& GetUserDataDir() const;
+ virtual std::vector<ProfileInfoEntry> GetProfilesSortedByName()
+ const OVERRIDE;
- // Gets the number of default avatar icons that exist.
- static size_t GetDefaultAvatarIconCount();
- // Gets the resource ID of the default avatar icon at |index|.
- static int GetDefaultAvatarIconResourceIDAtIndex(size_t index);
- // Returns a URL for the default avatar icon with specified index.
- static std::string GetDefaultAvatarIconUrl(size_t index);
- // Checks if the given URL points to one of the default avatar icons. If it
- // is, returns true and its index through |icon_index|. If not, returns false.
- static bool IsDefaultAvatarIconUrl(const std::string& icon_url,
- size_t *icon_index);
+ virtual bool GetInfoForProfile(const FilePath& path,
+ ProfileInfoEntry* entry) const OVERRIDE;
+
+ void DeleteProfileFromCache(const FilePath& profile_path);
+
+ void SetInfoForProfile(const ProfileInfoEntry& info);
+
+ const FilePath& GetUserDataDir() const;
// Register cache related preferences in Local State.
static void RegisterPrefs(PrefService* prefs);
private:
- const base::DictionaryValue* GetInfoForProfileAtIndex(size_t index) const;
- // Saves the profile info to a cache and takes ownership of |info|.
- // Currently the only information that is cached is the profiles name,
- // user name, and avatar icon.
- void SetInfoForProfileAtIndex(size_t index, base::DictionaryValue* info);
std::string CacheKeyFromProfilePath(const FilePath& profile_path) const;
- std::vector<std::string>::iterator FindPositionForProfile(
- std::string search_key,
- const string16& search_name);
-
- // Returns true if the given icon index is not in use by another profie.
- bool IconIndexIsUnique(size_t icon_index) const;
-
- // Tries to find an icon index that satisfies all the given conditions.
- // Returns true if an icon was found, false otherwise.
- bool ChooseAvatarIconIndexForNewProfile(bool allow_generic_icon,
- bool must_be_unique,
- size_t* out_icon_index) const;
PrefService* prefs_;
- std::vector<std::string> sorted_keys_;
FilePath user_data_dir_;
+ std::map<std::string, ProfileInfoEntry> cached_entries_;
DISALLOW_COPY_AND_ASSIGN(ProfileInfoCache);
};
« no previous file with comments | « chrome/browser/profiles/profile_impl.cc ('k') | chrome/browser/profiles/profile_info_cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698