Index: chrome/browser/profiles/profile_avatar_icon_util.cc |
diff --git a/chrome/browser/profiles/profile_avatar_icon_util.cc b/chrome/browser/profiles/profile_avatar_icon_util.cc |
index b074d11f11ca28df535c0d1f871a72ee732fadd6..6c9ea0b39ad187707b17fcabd8c02d6dd26baeb6 100644 |
--- a/chrome/browser/profiles/profile_avatar_icon_util.cc |
+++ b/chrome/browser/profiles/profile_avatar_icon_util.cc |
@@ -10,6 +10,9 @@ |
#include "base/path_service.h" |
#include "base/strings/string_number_conversions.h" |
#include "base/strings/stringprintf.h" |
+#include "chrome/browser/browser_process.h" |
+#include "chrome/browser/profiles/profile_info_cache.h" |
+#include "chrome/browser/profiles/profile_manager.h" |
#include "chrome/common/chrome_paths.h" |
#include "grit/theme_resources.h" |
#include "skia/ext/image_operations.h" |
@@ -17,6 +20,7 @@ |
#include "third_party/skia/include/core/SkPath.h" |
#include "third_party/skia/include/core/SkScalar.h" |
#include "third_party/skia/include/core/SkXfermode.h" |
+#include "ui/base/resource/resource_bundle.h" |
#include "ui/gfx/canvas.h" |
#include "ui/gfx/image/canvas_image_source.h" |
#include "ui/gfx/image/image.h" |
@@ -287,6 +291,35 @@ SkBitmap GetAvatarIconAsSquare(const SkBitmap& source_bitmap, |
return square_bitmap; |
} |
+void GetTransparentBackgroundProfileAvatar(const base::FilePath& profile_path, |
tapted
2014/11/03 23:57:06
nit: move to end of file? (to be consistent with d
noms (inactive)
2014/11/04 20:03:09
Turns out everything was in a whack order, so I re
|
+ gfx::Image* image, |
+ bool* is_rectangle) { |
+ const ProfileInfoCache& cache = |
+ g_browser_process->profile_manager()->GetProfileInfoCache(); |
+ size_t index = cache.GetIndexOfProfileWithPath(profile_path); |
+ if (index == std::string::npos) { |
+ NOTREACHED(); |
+ return; |
+ } |
+ |
+ // If there is a Gaia image available, try to use that. |
+ if (cache.IsUsingGAIAPictureOfProfileAtIndex(index)) { |
+ const gfx::Image* gaia_image = cache.GetGAIAPictureOfProfileAtIndex(index); |
+ if (gaia_image) { |
+ *image = *gaia_image; |
+ *is_rectangle = true; |
+ return; |
+ } |
+ } |
+ |
+ // Otherwise, use the default resource, not the downloaded high-res one. |
+ const size_t icon_index = cache.GetAvatarIconIndexOfProfileAtIndex(index); |
+ const int resource_id = |
+ profiles::GetDefaultAvatarIconResourceIDAtIndex(icon_index); |
+ *image = ResourceBundle::GetSharedInstance().GetNativeImageNamed(resource_id); |
+ *is_rectangle = false; |
+} |
+ |
// Helper methods for accessing, transforming and drawing avatar icons. |
size_t GetDefaultAvatarIconCount() { |
return kDefaultAvatarIconsCount; |