Index: chrome/browser/chromeos/login/user.cc |
diff --git a/chrome/browser/chromeos/login/user.cc b/chrome/browser/chromeos/login/user.cc |
index 80d10e27884271caaf80f98e2fb7db6f2a59c71c..2e0ce1297ba46963f2865f70492fdddfb7bb7bc2 100644 |
--- a/chrome/browser/chromeos/login/user.cc |
+++ b/chrome/browser/chromeos/login/user.cc |
@@ -6,6 +6,7 @@ |
#include "base/stringprintf.h" |
#include "chrome/browser/chromeos/login/default_user_images.h" |
+#include "chrome/browser/chromeos/login/user_image.h" |
#include "chrome/browser/chromeos/login/user_manager.h" |
#include "grit/theme_resources.h" |
#include "ui/base/resource/resource_bundle.h" |
@@ -26,10 +27,22 @@ std::string GetUserName(const std::string& email) { |
return email.substr(0, i); |
} |
+bool IsGIFImage(const std::vector<unsigned char>& data) { |
Ivan Korotkov
2012/05/29 10:50:23
Feels like this should part of UserImage.
ygorshenin1
2012/05/30 12:17:34
Done.
|
+ const char* kGIFStamp = "GIF"; |
Ivan Korotkov
2012/05/29 10:50:23
Better: static const char kGIFStamp[] = "GIF";
the
ygorshenin1
2012/05/30 12:17:34
Done.
|
+ const size_t gif_stamp_len = strlen(kGIFStamp); |
+ |
+ if (data.size() >= gif_stamp_len && |
+ memcmp(&data[0], kGIFStamp, gif_stamp_len) == 0) { |
+ return true; |
+ } |
+ return false; |
+} |
+ |
} // namespace |
User::User(const std::string& email, bool is_guest) |
: email_(email), |
+ has_gif_image_(false), |
oauth_token_status_(OAUTH_TOKEN_STATUS_UNKNOWN), |
image_index_(kInvalidImageIndex), |
image_is_stub_(false), |
@@ -48,10 +61,18 @@ User::User(const std::string& email, bool is_guest) |
User::~User() {} |
-void User::SetImage(const SkBitmap& image, int image_index) { |
- image_ = image; |
+void User::SetImage(const UserImage& user_image, int image_index) { |
+ image_ = user_image.image(); |
image_index_ = image_index; |
image_is_stub_ = false; |
+ if (user_image.has_raw_image() && IsGIFImage(user_image.raw_image())) { |
+ has_gif_image_ = true; |
+ gif_image_ = user_image.raw_image(); |
+ } else { |
+ has_gif_image_ = false; |
+ std::vector<unsigned char> tmp; |
+ gif_image_.swap(tmp); |
Ivan Korotkov
2012/05/29 10:50:23
Why not vector::clear?
ygorshenin1
2012/05/30 12:17:34
To release buffer allocated by vector. Usually, cl
|
+ } |
} |
void User::SetStubImage(int image_index) { |