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

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

Issue 236013002: Apply default wallpaper from customization manifest. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove wallpaper URL from ServicesCustomizationDocumentTest. Created 6 years, 8 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_image_loader.cc
diff --git a/chrome/browser/chromeos/login/user_image_loader.cc b/chrome/browser/chromeos/login/user_image_loader.cc
index bbb7c6b31bfacaf7a1909b2c5b2a285cc528eaf6..3087fd7bbfe81393bc9dfb8aaece60ca3480b333 100644
--- a/chrome/browser/chromeos/login/user_image_loader.cc
+++ b/chrome/browser/chromeos/login/user_image_loader.cc
@@ -20,9 +20,11 @@
namespace chromeos {
-UserImageLoader::ImageInfo::ImageInfo(int size,
+UserImageLoader::ImageInfo::ImageInfo(const std::string& file_path,
+ int pixels_per_side,
const LoadedCallback& loaded_cb)
- : size(size),
+ : file_path(file_path),
+ pixels_per_side(pixels_per_side),
loaded_cb(loaded_cb) {
}
@@ -41,33 +43,32 @@ UserImageLoader::~UserImageLoader() {
}
void UserImageLoader::Start(const std::string& filepath,
- int size,
+ int pixels_per_side,
const LoadedCallback& loaded_cb) {
background_task_runner_->PostTask(
FROM_HERE,
base::Bind(&UserImageLoader::ReadAndDecodeImage,
this,
- filepath,
- ImageInfo(size, loaded_cb)));
+ ImageInfo(filepath, pixels_per_side, loaded_cb)));
}
void UserImageLoader::Start(scoped_ptr<std::string> data,
- int size,
+ int pixels_per_side,
const LoadedCallback& loaded_cb) {
- background_task_runner_->PostTask(FROM_HERE,
- base::Bind(&UserImageLoader::DecodeImage,
- this,
- base::Passed(&data),
- ImageInfo(size, loaded_cb)));
+ background_task_runner_->PostTask(
+ FROM_HERE,
+ base::Bind(&UserImageLoader::DecodeImage,
+ this,
+ base::Passed(&data),
+ ImageInfo(std::string(), pixels_per_side, loaded_cb)));
}
-void UserImageLoader::ReadAndDecodeImage(const std::string& filepath,
- const ImageInfo& image_info) {
+void UserImageLoader::ReadAndDecodeImage(const ImageInfo& image_info) {
DCHECK(background_task_runner_->RunsTasksOnCurrentThread());
scoped_ptr<std::string> data(new std::string);
const bool success =
- base::ReadFileToString(base::FilePath(filepath), data.get());
+ base::ReadFileToString(base::FilePath(image_info.file_path), data.get());
DCHECK(success);
DecodeImage(data.Pass(), image_info);
@@ -92,7 +93,8 @@ void UserImageLoader::OnImageDecoded(const ImageDecoder* decoder,
NOTREACHED();
return;
}
- const int target_size = it->second.size;
+ const std::string file_path = it->second.file_path;
+ const int target_size = it->second.pixels_per_side;
const LoadedCallback loaded_cb = it->second.loaded_cb;
image_info_map_.erase(it);
@@ -100,12 +102,13 @@ void UserImageLoader::OnImageDecoded(const ImageDecoder* decoder,
if (target_size > 0) {
// Auto crop the image, taking the largest square in the center.
- int size = std::min(decoded_image.width(), decoded_image.height());
- int x = (decoded_image.width() - size) / 2;
- int y = (decoded_image.height() - size) / 2;
- SkBitmap cropped_image =
- SkBitmapOperations::CreateTiledBitmap(decoded_image, x, y, size, size);
- if (size > target_size) {
+ int pixels_per_side =
+ std::min(decoded_image.width(), decoded_image.height());
+ int x = (decoded_image.width() - pixels_per_side) / 2;
+ int y = (decoded_image.height() - pixels_per_side) / 2;
+ SkBitmap cropped_image = SkBitmapOperations::CreateTiledBitmap(
+ decoded_image, x, y, pixels_per_side, pixels_per_side);
+ if (pixels_per_side > target_size) {
// Also downsize the image to save space and memory.
final_image =
skia::ImageOperations::Resize(cropped_image,
@@ -123,6 +126,7 @@ void UserImageLoader::OnImageDecoded(const ImageDecoder* decoder,
gfx::ImageSkia::CreateFrom1xBitmap(final_image);
final_image_skia.MakeThreadSafe();
UserImage user_image(final_image_skia, decoder->get_image_data());
+ user_image.set_file_path(file_path);
if (image_codec_ == ImageDecoder::ROBUST_JPEG_CODEC)
user_image.MarkAsSafe();
foreground_task_runner_->PostTask(FROM_HERE,

Powered by Google App Engine
This is Rietveld 408576698