Chromium Code Reviews| Index: chrome/browser/chromeos/login/user_image.cc |
| diff --git a/chrome/browser/chromeos/login/user_image.cc b/chrome/browser/chromeos/login/user_image.cc |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..daa33a0a25b221d9ddc6f86b00955e52d663d9bb |
| --- /dev/null |
| +++ b/chrome/browser/chromeos/login/user_image.cc |
| @@ -0,0 +1,47 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +#include "chrome/browser/chromeos/login/user_image.h" |
| + |
| +namespace chromeos { |
| + |
| +namespace { |
| + |
| +bool IsAnimatedImage(const UserImage::RawImage& data) { |
| + const char kGIFStamp[] = "GIF"; |
| + const size_t kGIFStampLength = sizeof(kGIFStamp) - 1; |
| + |
| + if (data.size() >= kGIFStampLength && |
| + memcmp(&data[0], kGIFStamp, kGIFStampLength) == 0) { |
| + return true; |
| + } |
| + return false; |
| +} |
| + |
| +} // namespace |
| + |
| +UserImage::UserImage(const SkBitmap& image) |
| + : image_(image), |
| + has_raw_image_(false), |
| + has_animated_image_(false) { |
| +} |
| + |
| +UserImage::UserImage(const SkBitmap& image, |
| + const RawImage& raw_image) |
| + : image_(image), |
| + has_raw_image_(true), |
| + has_animated_image_(IsAnimatedImage(raw_image)), |
| + raw_image_(raw_image) { |
| +} |
| + |
| +UserImage::~UserImage() {} |
| + |
| +void UserImage::SetImage(const SkBitmap& image) { |
| + image_ = image; |
| + has_raw_image_ = false; |
| + has_animated_image_ = false; |
| + RawImage().swap(raw_image_); |
|
Ivan Korotkov
2012/05/30 13:06:51
As discussed offline, this idiom is OK but please
ygorshenin1
2012/05/30 13:19:14
Done.
|
| +} |
| + |
| +} // namespace chromeos |