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

Side by Side Diff: chrome/browser/profiles/profile_info_cache.h

Issue 11570009: Split PrefService into PrefService, PrefServiceSimple and PrefServiceSyncable. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Ready for review. Created 8 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_H_ 5 #ifndef CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_H_
6 #define CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_H_ 6 #define CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_H_
7 7
8 #include <map> 8 #include <map>
9 #include <string> 9 #include <string>
10 #include <vector> 10 #include <vector>
11 11
12 #include "base/basictypes.h" 12 #include "base/basictypes.h"
13 #include "base/compiler_specific.h" 13 #include "base/compiler_specific.h"
14 #include "base/file_path.h" 14 #include "base/file_path.h"
15 #include "base/memory/weak_ptr.h" 15 #include "base/memory/weak_ptr.h"
16 #include "base/observer_list.h" 16 #include "base/observer_list.h"
17 #include "base/string16.h" 17 #include "base/string16.h"
18 #include "chrome/browser/profiles/profile_info_cache_observer.h" 18 #include "chrome/browser/profiles/profile_info_cache_observer.h"
19 #include "chrome/browser/profiles/profile_info_interface.h" 19 #include "chrome/browser/profiles/profile_info_interface.h"
20 20
21 namespace gfx { 21 namespace gfx {
22 class Image; 22 class Image;
23 } 23 }
24 24
25 namespace base { 25 namespace base {
26 class DictionaryValue; 26 class DictionaryValue;
27 } 27 }
28 28
29 class PrefService; 29 class PrefService;
30 class PrefServiceSimple;
30 31
31 // This class saves various information about profiles to local preferences. 32 // This class saves various information about profiles to local preferences.
32 // This cache can be used to display a list of profiles without having to 33 // This cache can be used to display a list of profiles without having to
33 // actually load the profiles from disk. 34 // actually load the profiles from disk.
34 class ProfileInfoCache : public ProfileInfoInterface, 35 class ProfileInfoCache : public ProfileInfoInterface,
35 public base::SupportsWeakPtr<ProfileInfoCache> { 36 public base::SupportsWeakPtr<ProfileInfoCache> {
36 public: 37 public:
37 ProfileInfoCache(PrefService* prefs, const FilePath& user_data_dir); 38 ProfileInfoCache(PrefService* prefs, const FilePath& user_data_dir);
38 virtual ~ProfileInfoCache(); 39 virtual ~ProfileInfoCache();
39 40
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
117 static bool IsDefaultAvatarIconUrl(const std::string& icon_url, 118 static bool IsDefaultAvatarIconUrl(const std::string& icon_url,
118 size_t *icon_index); 119 size_t *icon_index);
119 120
120 // Gets all names of profiles associated with this instance of Chrome. 121 // Gets all names of profiles associated with this instance of Chrome.
121 // Because this method will be called during uninstall, before the creation 122 // Because this method will be called during uninstall, before the creation
122 // of the ProfileManager, it reads directly from the local state preferences, 123 // of the ProfileManager, it reads directly from the local state preferences,
123 // rather than going through the ProfileInfoCache object. 124 // rather than going through the ProfileInfoCache object.
124 static std::vector<string16> GetProfileNames(); 125 static std::vector<string16> GetProfileNames();
125 126
126 // Register cache related preferences in Local State. 127 // Register cache related preferences in Local State.
127 static void RegisterPrefs(PrefService* prefs); 128 static void RegisterPrefs(PrefServiceSimple* prefs);
128 129
129 void AddObserver(ProfileInfoCacheObserver* obs); 130 void AddObserver(ProfileInfoCacheObserver* obs);
130 void RemoveObserver(ProfileInfoCacheObserver* obs); 131 void RemoveObserver(ProfileInfoCacheObserver* obs);
131 132
132 private: 133 private:
133 const base::DictionaryValue* GetInfoForProfileAtIndex(size_t index) const; 134 const base::DictionaryValue* GetInfoForProfileAtIndex(size_t index) const;
134 // Saves the profile info to a cache and takes ownership of |info|. 135 // Saves the profile info to a cache and takes ownership of |info|.
135 // Currently the only information that is cached is the profile's name, 136 // Currently the only information that is cached is the profile's name,
136 // user name, and avatar icon. 137 // user name, and avatar icon.
137 void SetInfoForProfileAtIndex(size_t index, base::DictionaryValue* info); 138 void SetInfoForProfileAtIndex(size_t index, base::DictionaryValue* info);
(...skipping 28 matching lines...) Expand all
166 // to be mutable. 167 // to be mutable.
167 mutable std::map<std::string, gfx::Image*> gaia_pictures_; 168 mutable std::map<std::string, gfx::Image*> gaia_pictures_;
168 // Marks a gaia profile picture as loading. This prevents a picture from 169 // Marks a gaia profile picture as loading. This prevents a picture from
169 // loading multiple times. 170 // loading multiple times.
170 mutable std::map<std::string, bool> gaia_pictures_loading_; 171 mutable std::map<std::string, bool> gaia_pictures_loading_;
171 172
172 DISALLOW_COPY_AND_ASSIGN(ProfileInfoCache); 173 DISALLOW_COPY_AND_ASSIGN(ProfileInfoCache);
173 }; 174 };
174 175
175 #endif // CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_H_ 176 #endif // CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698