Chromium Code Reviews| 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) { |