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

Unified Diff: chrome/browser/chromeos/login/user.cc

Issue 10454044: Added support for animated/nonanimated user image. (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Created 8 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 side-by-side diff with in-line comments
Download patch
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) {

Powered by Google App Engine
This is Rietveld 408576698