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

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

Issue 1214483002: Improve the ProfileInfoCache API. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 5 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/profiles/profile_info_cache.h
diff --git a/chrome/browser/profiles/profile_info_cache.h b/chrome/browser/profiles/profile_info_cache.h
index 38edaa2ca68faa0e8d9eed414d9d59073d84d743..6969344dc23d6e5542c223710489c206406a0cbe 100644
--- a/chrome/browser/profiles/profile_info_cache.h
+++ b/chrome/browser/profiles/profile_info_cache.h
@@ -11,10 +11,13 @@
#include "base/basictypes.h"
#include "base/compiler_specific.h"
+#include "base/containers/scoped_ptr_hash_map.h"
#include "base/files/file_path.h"
#include "base/memory/weak_ptr.h"
#include "base/observer_list.h"
#include "base/strings/string16.h"
+#include "chrome/browser/profiles/profile_attributes_entry.h"
+#include "chrome/browser/profiles/profile_attributes_storage.h"
#include "chrome/browser/profiles/profile_info_cache_observer.h"
#include "chrome/browser/profiles/profile_info_interface.h"
@@ -33,7 +36,10 @@ class ProfileAvatarDownloader;
// 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.
+// The ProfileInfoInterface is being deprecated. Prefer using the
+// ProfileAttributesStorage and avoid using the Get*AtIndex family of functions.
class ProfileInfoCache : public ProfileInfoInterface,
+ public ProfileAttributesStorage,
public base::SupportsWeakPtr<ProfileInfoCache> {
public:
ProfileInfoCache(PrefService* prefs, const base::FilePath& user_data_dir);
@@ -44,18 +50,22 @@ class ProfileInfoCache : public ProfileInfoInterface,
// supervised user is in the process of being registered with the server. Use
// SetIsOmittedProfileAtIndex() to clear the flag when the profile is ready to
// be shown in the menu.
+ // Deprecated. Use AddProfile instead.
void AddProfileToCache(const base::FilePath& profile_path,
const base::string16& name,
const std::string& gaia_id,
const base::string16& user_name,
size_t icon_index,
const std::string& supervised_user_id);
+ // Deprecated. Use RemoveProfile instead.
void DeleteProfileFromCache(const base::FilePath& profile_path);
// ProfileInfoInterface:
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.
+ // Deprecated. Prefer using the ProfileAttributesStorage interface instead of
+ // directly referring to this implementation.
size_t GetIndexOfProfileWithPath(
const base::FilePath& profile_path) const override;
base::string16 GetNameOfProfileAtIndex(size_t index) const override;
@@ -161,6 +171,21 @@ class ProfileInfoCache : public ProfileInfoInterface,
disable_avatar_download_for_testing_ = disable_avatar_download_for_testing;
}
+ // ProfileAttributesStorage:
+ void AddProfile(const base::FilePath& profile_path,
+ const base::string16& name,
+ const std::string& gaia_id,
+ const base::string16& user_name,
+ size_t icon_index,
+ const std::string& supervised_user_id) override;
+ void RemoveProfile(const base::FilePath& profile_path) override;
+ // Returns a vector containing one attributes entry per known profile. They
+ // are not sorted in any particular order.
+ std::vector<ProfileAttributesEntry*> GetAllProfilesAttributes() override;
+ bool GetProfileAttributesWithPath(
+ const base::FilePath& path,
+ ProfileAttributesEntry** entry) override;
+
private:
FRIEND_TEST_ALL_PREFIXES(ProfileInfoCacheTest, DownloadHighResAvatarTest);
FRIEND_TEST_ALL_PREFIXES(ProfileInfoCacheTest,
@@ -220,6 +245,8 @@ class ProfileInfoCache : public ProfileInfoInterface,
PrefService* prefs_;
std::vector<std::string> sorted_keys_;
+ base::ScopedPtrHashMap<base::FilePath, scoped_ptr<ProfileAttributesEntry> >
+ profile_attributes_entries_;
base::FilePath user_data_dir_;
mutable base::ObserverList<ProfileInfoCacheObserver> observer_list_;
« no previous file with comments | « chrome/browser/profiles/profile_attributes_storage_unittest.cc ('k') | chrome/browser/profiles/profile_info_cache.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698