OLD | NEW |
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> |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 const base::string16& name); | 128 const base::string16& name); |
129 void SetGAIAPictureOfProfileAtIndex(size_t index, const gfx::Image* image); | 129 void SetGAIAPictureOfProfileAtIndex(size_t index, const gfx::Image* image); |
130 void SetIsUsingGAIAPictureOfProfileAtIndex(size_t index, bool value); | 130 void SetIsUsingGAIAPictureOfProfileAtIndex(size_t index, bool value); |
131 void SetProfileSigninRequiredAtIndex(size_t index, bool value); | 131 void SetProfileSigninRequiredAtIndex(size_t index, bool value); |
132 void SetProfileIsEphemeralAtIndex(size_t index, bool value); | 132 void SetProfileIsEphemeralAtIndex(size_t index, bool value); |
133 void SetProfileIsUsingDefaultNameAtIndex(size_t index, bool value); | 133 void SetProfileIsUsingDefaultNameAtIndex(size_t index, bool value); |
134 void SetProfileIsUsingDefaultAvatarAtIndex(size_t index, bool value); | 134 void SetProfileIsUsingDefaultAvatarAtIndex(size_t index, bool value); |
135 void SetProfileIsAuthErrorAtIndex(size_t index, bool value); | 135 void SetProfileIsAuthErrorAtIndex(size_t index, bool value); |
136 | 136 |
137 // Determines whether |name| is one of the default assigned names. | 137 // Determines whether |name| is one of the default assigned names. |
138 bool IsDefaultProfileName(const base::string16& name) const; | 138 bool IsDefaultProfileName(const base::string16& name) const override; |
139 | 139 |
140 // Returns unique name that can be assigned to a newly created profile. | 140 // Returns unique name that can be assigned to a newly created profile. |
141 base::string16 ChooseNameForNewProfile(size_t icon_index) const; | 141 base::string16 ChooseNameForNewProfile(size_t icon_index) const override; |
142 | 142 |
143 // Returns an avatar icon index that can be assigned to a newly created | 143 // Returns an avatar icon index that can be assigned to a newly created |
144 // profile. Note that the icon may not be unique since there are a limited | 144 // profile. Note that the icon may not be unique since there are a limited |
145 // set of default icons. | 145 // set of default icons. |
146 size_t ChooseAvatarIconIndexForNewProfile() const; | 146 size_t ChooseAvatarIconIndexForNewProfile() const; |
147 | 147 |
148 const base::FilePath& GetUserDataDir() const; | 148 const base::FilePath& GetUserDataDir() const override; |
149 | 149 |
150 // Register cache related preferences in Local State. | 150 // Register cache related preferences in Local State. |
151 static void RegisterPrefs(PrefRegistrySimple* registry); | 151 static void RegisterPrefs(PrefRegistrySimple* registry); |
152 | 152 |
153 // Checks whether the high res avatar at index |icon_index| exists, and | 153 // Checks whether the high res avatar at index |icon_index| exists, and |
154 // if it does not, calls |DownloadHighResAvatar|. | 154 // if it does not, calls |DownloadHighResAvatar|. |
155 void DownloadHighResAvatarIfNeeded(size_t icon_index, | 155 void DownloadHighResAvatarIfNeeded(size_t icon_index, |
156 const base::FilePath& profile_path); | 156 const base::FilePath& profile_path); |
157 | 157 |
158 // Saves the avatar |image| at |image_path|. This is used both for the | 158 // Saves the avatar |image| at |image_path|. This is used both for the |
159 // GAIA profile pictures and the ProfileAvatarDownloader that is used to | 159 // GAIA profile pictures and the ProfileAvatarDownloader that is used to |
160 // download the high res avatars. | 160 // download the high res avatars. |
161 void SaveAvatarImageAtPath(const gfx::Image* image, | 161 void SaveAvatarImageAtPath(const gfx::Image* image, |
162 const std::string& key, | 162 const std::string& key, |
163 const base::FilePath& image_path, | 163 const base::FilePath& image_path, |
164 const base::FilePath& profile_path); | 164 const base::FilePath& profile_path) override; |
165 | 165 |
166 void AddObserver(ProfileInfoCacheObserver* obs); | 166 void AddObserver(ProfileInfoCacheObserver* obs) override; |
167 void RemoveObserver(ProfileInfoCacheObserver* obs); | 167 void RemoveObserver(ProfileInfoCacheObserver* obs) override; |
168 | 168 |
169 void set_disable_avatar_download_for_testing( | 169 void set_disable_avatar_download_for_testing( |
170 bool disable_avatar_download_for_testing) { | 170 bool disable_avatar_download_for_testing) { |
171 disable_avatar_download_for_testing_ = disable_avatar_download_for_testing; | 171 disable_avatar_download_for_testing_ = disable_avatar_download_for_testing; |
172 } | 172 } |
173 | 173 |
174 // ProfileAttributesStorage: | 174 // ProfileAttributesStorage: |
175 void AddProfile(const base::FilePath& profile_path, | 175 void AddProfile(const base::FilePath& profile_path, |
176 const base::string16& name, | 176 const base::string16& name, |
177 const std::string& gaia_id, | 177 const std::string& gaia_id, |
178 const base::string16& user_name, | 178 const base::string16& user_name, |
179 size_t icon_index, | 179 size_t icon_index, |
180 const std::string& supervised_user_id) override; | 180 const std::string& supervised_user_id) override; |
181 void RemoveProfile(const base::FilePath& profile_path) override; | 181 void RemoveProfile(const base::FilePath& profile_path) override; |
182 // Returns a vector containing one attributes entry per known profile. They | 182 // Returns a vector containing one attributes entry per known profile. They |
183 // are not sorted in any particular order. | 183 // are not sorted in any particular order. |
184 std::vector<ProfileAttributesEntry*> GetAllProfilesAttributes() override; | 184 std::vector<ProfileAttributesEntry*> GetAllProfilesAttributes() override; |
185 bool GetProfileAttributesWithPath( | 185 bool GetProfileAttributesWithPath( |
186 const base::FilePath& path, | 186 const base::FilePath& path, |
187 ProfileAttributesEntry** entry) override; | 187 ProfileAttributesEntry** entry) override; |
188 | 188 |
| 189 std::string CacheKeyFromProfilePath(const base::FilePath& profile_path) const; |
189 private: | 190 private: |
190 FRIEND_TEST_ALL_PREFIXES(ProfileInfoCacheTest, DownloadHighResAvatarTest); | 191 FRIEND_TEST_ALL_PREFIXES(ProfileInfoCacheTest, DownloadHighResAvatarTest); |
191 FRIEND_TEST_ALL_PREFIXES(ProfileInfoCacheTest, | 192 FRIEND_TEST_ALL_PREFIXES(ProfileInfoCacheTest, |
192 NothingToDownloadHighResAvatarTest); | 193 NothingToDownloadHighResAvatarTest); |
193 | 194 |
194 const base::DictionaryValue* GetInfoForProfileAtIndex(size_t index) const; | 195 const base::DictionaryValue* GetInfoForProfileAtIndex(size_t index) const; |
195 // Saves the profile info to a cache and takes ownership of |info|. | 196 // Saves the profile info to a cache and takes ownership of |info|. |
196 void SetInfoForProfileAtIndex(size_t index, base::DictionaryValue* info); | 197 void SetInfoForProfileAtIndex(size_t index, base::DictionaryValue* info); |
197 std::string CacheKeyFromProfilePath(const base::FilePath& profile_path) const; | |
198 std::vector<std::string>::iterator FindPositionForProfile( | 198 std::vector<std::string>::iterator FindPositionForProfile( |
199 const std::string& search_key, | 199 const std::string& search_key, |
200 const base::string16& search_name); | 200 const base::string16& search_name); |
201 | 201 |
202 // Returns true if the given icon index is not in use by another profie. | 202 // Returns true if the given icon index is not in use by another profie. |
203 bool IconIndexIsUnique(size_t icon_index) const; | 203 bool IconIndexIsUnique(size_t icon_index) const; |
204 | 204 |
205 // Tries to find an icon index that satisfies all the given conditions. | 205 // Tries to find an icon index that satisfies all the given conditions. |
206 // Returns true if an icon was found, false otherwise. | 206 // Returns true if an icon was found, false otherwise. |
207 bool ChooseAvatarIconIndexForNewProfile(bool allow_generic_icon, | 207 bool ChooseAvatarIconIndexForNewProfile(bool allow_generic_icon, |
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
267 avatar_images_downloads_in_progress_; | 267 avatar_images_downloads_in_progress_; |
268 | 268 |
269 // Determines of the ProfileAvatarDownloader should be created and executed | 269 // Determines of the ProfileAvatarDownloader should be created and executed |
270 // or not. Only set to true for tests. | 270 // or not. Only set to true for tests. |
271 bool disable_avatar_download_for_testing_; | 271 bool disable_avatar_download_for_testing_; |
272 | 272 |
273 DISALLOW_COPY_AND_ASSIGN(ProfileInfoCache); | 273 DISALLOW_COPY_AND_ASSIGN(ProfileInfoCache); |
274 }; | 274 }; |
275 | 275 |
276 #endif // CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_H_ | 276 #endif // CHROME_BROWSER_PROFILES_PROFILE_INFO_CACHE_H_ |
OLD | NEW |