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

Side by Side Diff: chrome/browser/profiles/profile_avatar_icon_util.cc

Issue 1127113003: Don't try to download 'NothingToDownload' placeholder avatar. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Clarify the comments a bit. Created 5 years, 7 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 unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 #include "chrome/browser/profiles/profile_avatar_icon_util.h" 5 #include "chrome/browser/profiles/profile_avatar_icon_util.h"
6 6
7 #include "base/files/file_util.h" 7 #include "base/files/file_util.h"
8 #include "base/format_macros.h" 8 #include "base/format_macros.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/path_service.h" 10 #include "base/path_service.h"
(...skipping 184 matching lines...) Expand 10 before | Expand all | Expand 10 after
195 const SkColor kAvatarBubbleAccountsBackgroundColor = 195 const SkColor kAvatarBubbleAccountsBackgroundColor =
196 SkColorSetRGB(0xf3, 0xf3, 0xf3); 196 SkColorSetRGB(0xf3, 0xf3, 0xf3);
197 const SkColor kAvatarBubbleGaiaBackgroundColor = 197 const SkColor kAvatarBubbleGaiaBackgroundColor =
198 SkColorSetRGB(0xf5, 0xf5, 0xf5); 198 SkColorSetRGB(0xf5, 0xf5, 0xf5);
199 const SkColor kUserManagerBackgroundColor = SkColorSetRGB(0xee, 0xee, 0xee); 199 const SkColor kUserManagerBackgroundColor = SkColorSetRGB(0xee, 0xee, 0xee);
200 200
201 const char kDefaultUrlPrefix[] = "chrome://theme/IDR_PROFILE_AVATAR_"; 201 const char kDefaultUrlPrefix[] = "chrome://theme/IDR_PROFILE_AVATAR_";
202 const char kGAIAPictureFileName[] = "Google Profile Picture.png"; 202 const char kGAIAPictureFileName[] = "Google Profile Picture.png";
203 const char kHighResAvatarFolderName[] = "Avatars"; 203 const char kHighResAvatarFolderName[] = "Avatars";
204 204
205 // This avatar does not exist on the server, the high res copy is in the build.
206 const char kNoHighResAvatar[] = "NothingToDownload";
207
208 // The size of the function-static kDefaultAvatarIconResources array below. 205 // The size of the function-static kDefaultAvatarIconResources array below.
209 const size_t kDefaultAvatarIconsCount = 27; 206 const size_t kDefaultAvatarIconsCount = 27;
210 207
211 // The first 8 icons are generic. 208 // The first 8 icons are generic.
212 const size_t kGenericAvatarIconsCount = 8; 209 const size_t kGenericAvatarIconsCount = 8;
213 210
214 // The avatar used as a placeholder (grey silhouette). 211 // The avatar used as a placeholder (grey silhouette).
215 const int kPlaceholderAvatarIcon = 26; 212 const size_t kPlaceholderAvatarIcon = 26;
216 213
217 gfx::Image GetSizedAvatarIcon(const gfx::Image& image, 214 gfx::Image GetSizedAvatarIcon(const gfx::Image& image,
218 bool is_rectangle, 215 bool is_rectangle,
219 int width, int height) { 216 int width, int height) {
220 if (!is_rectangle && image.Height() <= height) 217 if (!is_rectangle && image.Height() <= height)
221 return image; 218 return image;
222 219
223 gfx::Size size(width, height); 220 gfx::Size size(width, height);
224 221
225 // Source for a centered, sized icon. GAIA images get a border. 222 // Source for a centered, sized icon. GAIA images get a border.
(...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after
293 290
294 // Helper methods for accessing, transforming and drawing avatar icons. 291 // Helper methods for accessing, transforming and drawing avatar icons.
295 size_t GetDefaultAvatarIconCount() { 292 size_t GetDefaultAvatarIconCount() {
296 return kDefaultAvatarIconsCount; 293 return kDefaultAvatarIconsCount;
297 } 294 }
298 295
299 size_t GetGenericAvatarIconCount() { 296 size_t GetGenericAvatarIconCount() {
300 return kGenericAvatarIconsCount; 297 return kGenericAvatarIconsCount;
301 } 298 }
302 299
303 int GetPlaceholderAvatarIndex() { 300 size_t GetPlaceholderAvatarIndex() {
304 return kPlaceholderAvatarIcon; 301 return kPlaceholderAvatarIcon;
305 } 302 }
306 303
307 int GetPlaceholderAvatarIconResourceID() { 304 int GetPlaceholderAvatarIconResourceID() {
308 return IDR_PROFILE_AVATAR_PLACEHOLDER_LARGE; 305 return IDR_PROFILE_AVATAR_PLACEHOLDER_LARGE;
309 } 306 }
310 307
311 const IconResourceInfo* GetDefaultAvatarIconResourceInfo(size_t index) { 308 const IconResourceInfo* GetDefaultAvatarIconResourceInfo(size_t index) {
309 DCHECK(index < kDefaultAvatarIconsCount);
312 static const IconResourceInfo resource_info[kDefaultAvatarIconsCount] = { 310 static const IconResourceInfo resource_info[kDefaultAvatarIconsCount] = {
313 { IDR_PROFILE_AVATAR_0, "avatar_generic.png"}, 311 {IDR_PROFILE_AVATAR_0, "avatar_generic.png"},
314 { IDR_PROFILE_AVATAR_1, "avatar_generic_aqua.png"}, 312 {IDR_PROFILE_AVATAR_1, "avatar_generic_aqua.png"},
315 { IDR_PROFILE_AVATAR_2, "avatar_generic_blue.png"}, 313 {IDR_PROFILE_AVATAR_2, "avatar_generic_blue.png"},
316 { IDR_PROFILE_AVATAR_3, "avatar_generic_green.png"}, 314 {IDR_PROFILE_AVATAR_3, "avatar_generic_green.png"},
317 { IDR_PROFILE_AVATAR_4, "avatar_generic_orange.png"}, 315 {IDR_PROFILE_AVATAR_4, "avatar_generic_orange.png"},
318 { IDR_PROFILE_AVATAR_5, "avatar_generic_purple.png"}, 316 {IDR_PROFILE_AVATAR_5, "avatar_generic_purple.png"},
319 { IDR_PROFILE_AVATAR_6, "avatar_generic_red.png"}, 317 {IDR_PROFILE_AVATAR_6, "avatar_generic_red.png"},
320 { IDR_PROFILE_AVATAR_7, "avatar_generic_yellow.png"}, 318 {IDR_PROFILE_AVATAR_7, "avatar_generic_yellow.png"},
321 { IDR_PROFILE_AVATAR_8, "avatar_secret_agent.png"}, 319 {IDR_PROFILE_AVATAR_8, "avatar_secret_agent.png"},
322 { IDR_PROFILE_AVATAR_9, "avatar_superhero.png"}, 320 {IDR_PROFILE_AVATAR_9, "avatar_superhero.png"},
323 { IDR_PROFILE_AVATAR_10, "avatar_volley_ball.png"}, 321 {IDR_PROFILE_AVATAR_10, "avatar_volley_ball.png"},
324 { IDR_PROFILE_AVATAR_11, "avatar_businessman.png"}, 322 {IDR_PROFILE_AVATAR_11, "avatar_businessman.png"},
325 { IDR_PROFILE_AVATAR_12, "avatar_ninja.png"}, 323 {IDR_PROFILE_AVATAR_12, "avatar_ninja.png"},
326 { IDR_PROFILE_AVATAR_13, "avatar_alien.png"}, 324 {IDR_PROFILE_AVATAR_13, "avatar_alien.png"},
327 { IDR_PROFILE_AVATAR_14, "avatar_smiley.png"}, 325 {IDR_PROFILE_AVATAR_14, "avatar_smiley.png"},
328 { IDR_PROFILE_AVATAR_15, "avatar_flower.png"}, 326 {IDR_PROFILE_AVATAR_15, "avatar_flower.png"},
329 { IDR_PROFILE_AVATAR_16, "avatar_pizza.png"}, 327 {IDR_PROFILE_AVATAR_16, "avatar_pizza.png"},
330 { IDR_PROFILE_AVATAR_17, "avatar_soccer.png"}, 328 {IDR_PROFILE_AVATAR_17, "avatar_soccer.png"},
331 { IDR_PROFILE_AVATAR_18, "avatar_burger.png"}, 329 {IDR_PROFILE_AVATAR_18, "avatar_burger.png"},
332 { IDR_PROFILE_AVATAR_19, "avatar_cat.png"}, 330 {IDR_PROFILE_AVATAR_19, "avatar_cat.png"},
333 { IDR_PROFILE_AVATAR_20, "avatar_cupcake.png"}, 331 {IDR_PROFILE_AVATAR_20, "avatar_cupcake.png"},
334 { IDR_PROFILE_AVATAR_21, "avatar_dog.png"}, 332 {IDR_PROFILE_AVATAR_21, "avatar_dog.png"},
335 { IDR_PROFILE_AVATAR_22, "avatar_horse.png"}, 333 {IDR_PROFILE_AVATAR_22, "avatar_horse.png"},
336 { IDR_PROFILE_AVATAR_23, "avatar_margarita.png"}, 334 {IDR_PROFILE_AVATAR_23, "avatar_margarita.png"},
337 { IDR_PROFILE_AVATAR_24, "avatar_note.png"}, 335 {IDR_PROFILE_AVATAR_24, "avatar_note.png"},
338 { IDR_PROFILE_AVATAR_25, "avatar_sun_cloud.png"}, 336 {IDR_PROFILE_AVATAR_25, "avatar_sun_cloud.png"},
339 { IDR_PROFILE_AVATAR_26, kNoHighResAvatar}, 337 {IDR_PROFILE_AVATAR_26, NULL},
340 }; 338 };
341 return &resource_info[index]; 339 return &resource_info[index];
342 } 340 }
343 341
344 int GetDefaultAvatarIconResourceIDAtIndex(size_t index) { 342 int GetDefaultAvatarIconResourceIDAtIndex(size_t index) {
345 DCHECK(IsDefaultAvatarIconIndex(index)); 343 DCHECK(IsDefaultAvatarIconIndex(index));
346 return GetDefaultAvatarIconResourceInfo(index)->resource_id; 344 return GetDefaultAvatarIconResourceInfo(index)->resource_id;
347 } 345 }
348 346
349 const char* GetDefaultAvatarIconFileNameAtIndex(size_t index) { 347 const char* GetDefaultAvatarIconFileNameAtIndex(size_t index) {
350 DCHECK(index < kDefaultAvatarIconsCount); 348 DCHECK(index < kDefaultAvatarIconsCount);
349 DCHECK(index != kPlaceholderAvatarIcon);
351 return GetDefaultAvatarIconResourceInfo(index)->filename; 350 return GetDefaultAvatarIconResourceInfo(index)->filename;
352 } 351 }
353 352
354 const char* GetNoHighResAvatarFileName() {
355 return kNoHighResAvatar;
356 }
357
358 base::FilePath GetPathOfHighResAvatarAtIndex(size_t index) { 353 base::FilePath GetPathOfHighResAvatarAtIndex(size_t index) {
359 std::string file_name = GetDefaultAvatarIconResourceInfo(index)->filename; 354 const char* file_name = GetDefaultAvatarIconFileNameAtIndex(index);
360 base::FilePath user_data_dir; 355 base::FilePath user_data_dir;
361 PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); 356 CHECK(PathService::Get(chrome::DIR_USER_DATA, &user_data_dir));
362 return user_data_dir.AppendASCII( 357 return user_data_dir.AppendASCII(
363 kHighResAvatarFolderName).AppendASCII(file_name); 358 kHighResAvatarFolderName).AppendASCII(file_name);
364 } 359 }
365 360
366 std::string GetDefaultAvatarIconUrl(size_t index) { 361 std::string GetDefaultAvatarIconUrl(size_t index) {
367 DCHECK(IsDefaultAvatarIconIndex(index)); 362 DCHECK(IsDefaultAvatarIconIndex(index));
368 return base::StringPrintf("%s%" PRIuS, kDefaultUrlPrefix, index); 363 return base::StringPrintf("%s%" PRIuS, kDefaultUrlPrefix, index);
369 } 364 }
370 365
371 bool IsDefaultAvatarIconIndex(size_t index) { 366 bool IsDefaultAvatarIconIndex(size_t index) {
(...skipping 14 matching lines...) Expand all
386 int_value >= static_cast<int>(kDefaultAvatarIconsCount)) 381 int_value >= static_cast<int>(kDefaultAvatarIconsCount))
387 return false; 382 return false;
388 *icon_index = int_value; 383 *icon_index = int_value;
389 return true; 384 return true;
390 } 385 }
391 386
392 return false; 387 return false;
393 } 388 }
394 389
395 } // namespace profiles 390 } // namespace profiles
OLDNEW
« no previous file with comments | « chrome/browser/profiles/profile_avatar_icon_util.h ('k') | chrome/browser/profiles/profile_info_cache.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698