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

Side by Side Diff: chrome/browser/ui/webui/options2/chromeos/change_picture_options_handler.cc

Issue 10830111: [cros] Encode user images when set from WebUI (regression fix). (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Review fixes Created 8 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/options2/chromeos/change_picture_options_handl er.h" 5 #include "chrome/browser/ui/webui/options2/chromeos/change_picture_options_handl er.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/bind_helpers.h" 8 #include "base/bind_helpers.h"
9 #include "base/command_line.h" 9 #include "base/command_line.h"
10 #include "base/metrics/histogram.h" 10 #include "base/metrics/histogram.h"
(...skipping 280 matching lines...) Expand 10 before | Expand all | Expand 10 after
291 bool waiting_for_camera_photo = false; 291 bool waiting_for_camera_photo = false;
292 292
293 if (StartsWithASCII(image_url, chrome::kChromeUIUserImageURL, false)) { 293 if (StartsWithASCII(image_url, chrome::kChromeUIUserImageURL, false)) {
294 // Image from file/camera uses kChromeUIUserImageURL as URL while 294 // Image from file/camera uses kChromeUIUserImageURL as URL while
295 // current profile image always has a full data URL. 295 // current profile image always has a full data URL.
296 // This way transition from (current profile image) to 296 // This way transition from (current profile image) to
297 // (profile image, current image from file) is easier. 297 // (profile image, current image from file) is easier.
298 298
299 DCHECK(!previous_image_.empty()); 299 DCHECK(!previous_image_.empty());
300 user_manager->SaveUserImage(user.email(), 300 user_manager->SaveUserImage(user.email(),
301 chromeos::UserImage(previous_image_)); 301 UserImage::CreateAndEncode(previous_image_));
302 302
303 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", 303 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice",
304 kHistogramImageOld, 304 kHistogramImageOld,
305 kHistogramImagesCount); 305 kHistogramImagesCount);
306 VLOG(1) << "Selected old user image"; 306 VLOG(1) << "Selected old user image";
307 } else if (IsDefaultImageUrl(image_url, &image_index)) { 307 } else if (IsDefaultImageUrl(image_url, &image_index)) {
308 // One of the default user images. 308 // One of the default user images.
309 user_manager->SaveUserDefaultImageIndex(user.email(), image_index); 309 user_manager->SaveUserDefaultImageIndex(user.email(), image_index);
310 310
311 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", 311 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice",
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
350 user_manager->SaveUserImageFromFile(user_manager->GetLoggedInUser().email(), 350 user_manager->SaveUserImageFromFile(user_manager->GetLoggedInUser().email(),
351 path); 351 path);
352 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", 352 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice",
353 kHistogramImageFromFile, 353 kHistogramImageFromFile,
354 kHistogramImagesCount); 354 kHistogramImagesCount);
355 VLOG(1) << "Selected image from file"; 355 VLOG(1) << "Selected image from file";
356 } 356 }
357 357
358 void ChangePictureOptionsHandler::OnPhotoAccepted(const gfx::ImageSkia& photo) { 358 void ChangePictureOptionsHandler::OnPhotoAccepted(const gfx::ImageSkia& photo) {
359 UserManager* user_manager = UserManager::Get(); 359 UserManager* user_manager = UserManager::Get();
360 // TODO(ivankr): once old camera UI is gone, there's always raw data in
361 // |image_decoder_|, pass UserImage and user it instead.
360 user_manager->SaveUserImage(user_manager->GetLoggedInUser().email(), 362 user_manager->SaveUserImage(user_manager->GetLoggedInUser().email(),
361 chromeos::UserImage(photo)); 363 UserImage::CreateAndEncode(photo));
362 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", 364 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice",
363 kHistogramImageFromCamera, 365 kHistogramImageFromCamera,
364 kHistogramImagesCount); 366 kHistogramImagesCount);
365 VLOG(1) << "Selected camera photo"; 367 VLOG(1) << "Selected camera photo";
366 } 368 }
367 369
368 void ChangePictureOptionsHandler::CheckCameraPresence() { 370 void ChangePictureOptionsHandler::CheckCameraPresence() {
369 // For WebRTC, camera presence checked is done on JS side. 371 // For WebRTC, camera presence checked is done on JS side.
370 if (!CommandLine::ForCurrentProcess()-> 372 if (!CommandLine::ForCurrentProcess()->
371 HasSwitch(switches::kDisableHtml5Camera)) { 373 HasSwitch(switches::kDisableHtml5Camera)) {
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
414 OnPhotoAccepted(user_photo_); 416 OnPhotoAccepted(user_photo_);
415 } 417 }
416 418
417 void ChangePictureOptionsHandler::OnDecodeImageFailed( 419 void ChangePictureOptionsHandler::OnDecodeImageFailed(
418 const ImageDecoder* decoder) { 420 const ImageDecoder* decoder) {
419 NOTREACHED() << "Failed to decode PNG image from WebUI"; 421 NOTREACHED() << "Failed to decode PNG image from WebUI";
420 } 422 }
421 423
422 } // namespace options2 424 } // namespace options2
423 } // namespace chromeos 425 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698