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

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

Issue 402133003: [cros, user_manager] Move default user images constants and helper functions out of src/chrome. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: re-format Created 6 years, 5 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) 2013 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2013 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/options/chromeos/change_picture_options_handle r.h" 5 #include "chrome/browser/ui/webui/options/chromeos/change_picture_options_handle r.h"
6 6
7 #include "ash/audio/sounds.h" 7 #include "ash/audio/sounds.h"
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/command_line.h" 10 #include "base/command_line.h"
11 #include "base/metrics/histogram.h" 11 #include "base/metrics/histogram.h"
12 #include "base/path_service.h" 12 #include "base/path_service.h"
13 #include "base/strings/string_util.h" 13 #include "base/strings/string_util.h"
14 #include "base/strings/utf_string_conversions.h" 14 #include "base/strings/utf_string_conversions.h"
15 #include "base/values.h" 15 #include "base/values.h"
16 #include "chrome/browser/chrome_notification_types.h" 16 #include "chrome/browser/chrome_notification_types.h"
17 #include "chrome/browser/chromeos/camera_presence_notifier.h" 17 #include "chrome/browser/chromeos/camera_presence_notifier.h"
18 #include "chrome/browser/chromeos/login/users/avatar/default_user_images.h"
19 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h" 18 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager.h"
20 #include "chrome/browser/chromeos/login/users/user_manager.h" 19 #include "chrome/browser/chromeos/login/users/user_manager.h"
21 #include "chrome/browser/chromeos/profiles/profile_helper.h" 20 #include "chrome/browser/chromeos/profiles/profile_helper.h"
22 #include "chrome/browser/ui/browser_finder.h" 21 #include "chrome/browser/ui/browser_finder.h"
23 #include "chrome/browser/ui/browser_window.h" 22 #include "chrome/browser/ui/browser_window.h"
24 #include "chrome/browser/ui/chrome_select_file_policy.h" 23 #include "chrome/browser/ui/chrome_select_file_policy.h"
25 #include "chrome/common/chrome_paths.h" 24 #include "chrome/common/chrome_paths.h"
26 #include "chrome/common/chrome_switches.h" 25 #include "chrome/common/chrome_switches.h"
27 #include "chrome/common/url_constants.h" 26 #include "chrome/common/url_constants.h"
28 #include "chromeos/audio/chromeos_sounds.h" 27 #include "chromeos/audio/chromeos_sounds.h"
28 #include "components/user_manager/user_image/default_user_images.h"
29 #include "components/user_manager/user_image/user_image.h" 29 #include "components/user_manager/user_image/user_image.h"
30 #include "content/public/browser/browser_thread.h" 30 #include "content/public/browser/browser_thread.h"
31 #include "content/public/browser/notification_service.h" 31 #include "content/public/browser/notification_service.h"
32 #include "content/public/browser/web_ui.h" 32 #include "content/public/browser/web_ui.h"
33 #include "content/public/common/url_constants.h" 33 #include "content/public/common/url_constants.h"
34 #include "grit/browser_resources.h" 34 #include "grit/browser_resources.h"
35 #include "grit/generated_resources.h" 35 #include "grit/generated_resources.h"
36 #include "grit/theme_resources.h" 36 #include "grit/theme_resources.h"
37 #include "net/base/data_url.h" 37 #include "net/base/data_url.h"
38 #include "ui/base/l10n/l10n_util.h" 38 #include "ui/base/l10n/l10n_util.h"
(...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after
159 web_ui()->RegisterMessageCallback("onChangePicturePageInitialized", 159 web_ui()->RegisterMessageCallback("onChangePicturePageInitialized",
160 base::Bind(&ChangePictureOptionsHandler::HandlePageInitialized, 160 base::Bind(&ChangePictureOptionsHandler::HandlePageInitialized,
161 base::Unretained(this))); 161 base::Unretained(this)));
162 web_ui()->RegisterMessageCallback("selectImage", 162 web_ui()->RegisterMessageCallback("selectImage",
163 base::Bind(&ChangePictureOptionsHandler::HandleSelectImage, 163 base::Bind(&ChangePictureOptionsHandler::HandleSelectImage,
164 base::Unretained(this))); 164 base::Unretained(this)));
165 } 165 }
166 166
167 void ChangePictureOptionsHandler::SendDefaultImages() { 167 void ChangePictureOptionsHandler::SendDefaultImages() {
168 base::ListValue image_urls; 168 base::ListValue image_urls;
169 for (int i = kFirstDefaultImageIndex; i < kDefaultImagesCount; ++i) { 169 for (int i = user_manager::kFirstDefaultImageIndex;
170 i < user_manager::kDefaultImagesCount;
171 ++i) {
170 scoped_ptr<base::DictionaryValue> image_data(new base::DictionaryValue); 172 scoped_ptr<base::DictionaryValue> image_data(new base::DictionaryValue);
171 image_data->SetString("url", GetDefaultImageUrl(i)); 173 image_data->SetString("url", user_manager::GetDefaultImageUrl(i));
172 image_data->SetString( 174 image_data->SetString(
173 "author", l10n_util::GetStringUTF16(kDefaultImageAuthorIDs[i])); 175 "author",
176 l10n_util::GetStringUTF16(user_manager::kDefaultImageAuthorIDs[i]));
174 image_data->SetString( 177 image_data->SetString(
175 "website", l10n_util::GetStringUTF16(kDefaultImageWebsiteIDs[i])); 178 "website",
176 image_data->SetString("title", GetDefaultImageDescription(i)); 179 l10n_util::GetStringUTF16(user_manager::kDefaultImageWebsiteIDs[i]));
180 image_data->SetString("title", user_manager::GetDefaultImageDescription(i));
177 image_urls.Append(image_data.release()); 181 image_urls.Append(image_data.release());
178 } 182 }
179 web_ui()->CallJavascriptFunction("ChangePictureOptions.setDefaultImages", 183 web_ui()->CallJavascriptFunction("ChangePictureOptions.setDefaultImages",
180 image_urls); 184 image_urls);
181 } 185 }
182 186
183 void ChangePictureOptionsHandler::HandleChooseFile( 187 void ChangePictureOptionsHandler::HandleChooseFile(
184 const base::ListValue* args) { 188 const base::ListValue* args) {
185 DCHECK(args && args->empty()); 189 DCHECK(args && args->empty());
186 select_file_dialog_ = ui::SelectFileDialog::Create( 190 select_file_dialog_ = ui::SelectFileDialog::Create(
(...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after
274 SendOldImage(webui::GetBitmapDataUrl(*previous_image_.bitmap())); 278 SendOldImage(webui::GetBitmapDataUrl(*previous_image_.bitmap()));
275 break; 279 break;
276 } 280 }
277 case User::kProfileImageIndex: { 281 case User::kProfileImageIndex: {
278 // User has his/her Profile image as the current image. 282 // User has his/her Profile image as the current image.
279 SendProfileImage(user->GetImage(), true); 283 SendProfileImage(user->GetImage(), true);
280 break; 284 break;
281 } 285 }
282 default: { 286 default: {
283 DCHECK(previous_image_index_ >= 0 && 287 DCHECK(previous_image_index_ >= 0 &&
284 previous_image_index_ < kDefaultImagesCount); 288 previous_image_index_ < user_manager::kDefaultImagesCount);
285 if (previous_image_index_ >= kFirstDefaultImageIndex) { 289 if (previous_image_index_ >= user_manager::kFirstDefaultImageIndex) {
286 // User has image from the current set of default images. 290 // User has image from the current set of default images.
287 base::StringValue image_url(GetDefaultImageUrl(previous_image_index_)); 291 base::StringValue image_url(
292 user_manager::GetDefaultImageUrl(previous_image_index_));
288 web_ui()->CallJavascriptFunction( 293 web_ui()->CallJavascriptFunction(
289 "ChangePictureOptions.setSelectedImage", image_url); 294 "ChangePictureOptions.setSelectedImage", image_url);
290 } else { 295 } else {
291 // User has an old default image, so present it in the same manner as a 296 // User has an old default image, so present it in the same manner as a
292 // previous image from file. 297 // previous image from file.
293 SendOldImage(GetDefaultImageUrl(previous_image_index_)); 298 SendOldImage(user_manager::GetDefaultImageUrl(previous_image_index_));
294 } 299 }
295 } 300 }
296 } 301 }
297 } 302 }
298 303
299 void ChangePictureOptionsHandler::SendProfileImage(const gfx::ImageSkia& image, 304 void ChangePictureOptionsHandler::SendProfileImage(const gfx::ImageSkia& image,
300 bool should_select) { 305 bool should_select) {
301 base::StringValue data_url(webui::GetBitmapDataUrl(*image.bitmap())); 306 base::StringValue data_url(webui::GetBitmapDataUrl(*image.bitmap()));
302 base::FundamentalValue select(should_select); 307 base::FundamentalValue select(should_select);
303 web_ui()->CallJavascriptFunction("ChangePictureOptions.setProfileImage", 308 web_ui()->CallJavascriptFunction("ChangePictureOptions.setProfileImage",
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 int image_index = User::kInvalidImageIndex; 346 int image_index = User::kInvalidImageIndex;
342 bool waiting_for_camera_photo = false; 347 bool waiting_for_camera_photo = false;
343 348
344 if (image_type == "old") { 349 if (image_type == "old") {
345 // Previous image (from camera or manually uploaded) re-selected. 350 // Previous image (from camera or manually uploaded) re-selected.
346 DCHECK(!previous_image_.isNull()); 351 DCHECK(!previous_image_.isNull());
347 user_image_manager->SaveUserImage( 352 user_image_manager->SaveUserImage(
348 user_manager::UserImage::CreateAndEncode(previous_image_)); 353 user_manager::UserImage::CreateAndEncode(previous_image_));
349 354
350 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", 355 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice",
351 kHistogramImageOld, 356 user_manager::kHistogramImageOld,
352 kHistogramImagesCount); 357 user_manager::kHistogramImagesCount);
353 VLOG(1) << "Selected old user image"; 358 VLOG(1) << "Selected old user image";
354 } else if (image_type == "default" && 359 } else if (image_type == "default" &&
355 IsDefaultImageUrl(image_url, &image_index)) { 360 user_manager::IsDefaultImageUrl(image_url, &image_index)) {
356 // One of the default user images. 361 // One of the default user images.
357 user_image_manager->SaveUserDefaultImageIndex(image_index); 362 user_image_manager->SaveUserDefaultImageIndex(image_index);
358 363
359 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", 364 UMA_HISTOGRAM_ENUMERATION(
360 GetDefaultImageHistogramValue(image_index), 365 "UserImage.ChangeChoice",
361 kHistogramImagesCount); 366 user_manager::GetDefaultImageHistogramValue(image_index),
367 user_manager::kHistogramImagesCount);
362 VLOG(1) << "Selected default user image: " << image_index; 368 VLOG(1) << "Selected default user image: " << image_index;
363 } else if (image_type == "camera") { 369 } else if (image_type == "camera") {
364 // Camera image is selected. 370 // Camera image is selected.
365 if (user_photo_.isNull()) { 371 if (user_photo_.isNull()) {
366 DCHECK(image_decoder_.get()); 372 DCHECK(image_decoder_.get());
367 waiting_for_camera_photo = true; 373 waiting_for_camera_photo = true;
368 VLOG(1) << "Still waiting for camera image to decode"; 374 VLOG(1) << "Still waiting for camera image to decode";
369 } else { 375 } else {
370 SetImageFromCamera(user_photo_); 376 SetImageFromCamera(user_photo_);
371 } 377 }
372 } else if (image_type == "profile") { 378 } else if (image_type == "profile") {
373 // Profile image selected. Could be previous (old) user image. 379 // Profile image selected. Could be previous (old) user image.
374 user_image_manager->SaveUserImageFromProfileImage(); 380 user_image_manager->SaveUserImageFromProfileImage();
375 381
376 if (previous_image_index_ == User::kProfileImageIndex) { 382 if (previous_image_index_ == User::kProfileImageIndex) {
377 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", 383 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice",
378 kHistogramImageOld, 384 user_manager::kHistogramImageOld,
379 kHistogramImagesCount); 385 user_manager::kHistogramImagesCount);
380 VLOG(1) << "Selected old (profile) user image"; 386 VLOG(1) << "Selected old (profile) user image";
381 } else { 387 } else {
382 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", 388 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice",
383 kHistogramImageFromProfile, 389 user_manager::kHistogramImageFromProfile,
384 kHistogramImagesCount); 390 user_manager::kHistogramImagesCount);
385 VLOG(1) << "Selected profile image"; 391 VLOG(1) << "Selected profile image";
386 } 392 }
387 } else { 393 } else {
388 NOTREACHED() << "Unexpected image type: " << image_type; 394 NOTREACHED() << "Unexpected image type: " << image_type;
389 } 395 }
390 396
391 // Ignore the result of the previous decoding if it's no longer needed. 397 // Ignore the result of the previous decoding if it's no longer needed.
392 if (!waiting_for_camera_photo && image_decoder_.get()) 398 if (!waiting_for_camera_photo && image_decoder_.get())
393 image_decoder_->set_delegate(NULL); 399 image_decoder_->set_delegate(NULL);
394 } 400 }
395 401
396 void ChangePictureOptionsHandler::FileSelected(const base::FilePath& path, 402 void ChangePictureOptionsHandler::FileSelected(const base::FilePath& path,
397 int index, 403 int index,
398 void* params) { 404 void* params) {
399 UserManager* user_manager = UserManager::Get(); 405 UserManager* user_manager = UserManager::Get();
400 user_manager->GetUserImageManager(GetUser()->email())-> 406 user_manager->GetUserImageManager(GetUser()->email())->
401 SaveUserImageFromFile(path); 407 SaveUserImageFromFile(path);
402 UMA_HISTOGRAM_ENUMERATION( 408 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice",
403 "UserImage.ChangeChoice", kHistogramImageFromFile, kHistogramImagesCount); 409 user_manager::kHistogramImageFromFile,
410 user_manager::kHistogramImagesCount);
404 VLOG(1) << "Selected image from file"; 411 VLOG(1) << "Selected image from file";
405 } 412 }
406 413
407 void ChangePictureOptionsHandler::SetImageFromCamera( 414 void ChangePictureOptionsHandler::SetImageFromCamera(
408 const gfx::ImageSkia& photo) { 415 const gfx::ImageSkia& photo) {
409 UserManager* user_manager = UserManager::Get(); 416 UserManager* user_manager = UserManager::Get();
410 user_manager->GetUserImageManager(GetUser()->email()) 417 user_manager->GetUserImageManager(GetUser()->email())
411 ->SaveUserImage(user_manager::UserImage::CreateAndEncode(photo)); 418 ->SaveUserImage(user_manager::UserImage::CreateAndEncode(photo));
412 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", 419 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice",
413 kHistogramImageFromCamera, 420 user_manager::kHistogramImageFromCamera,
414 kHistogramImagesCount); 421 user_manager::kHistogramImagesCount);
415 VLOG(1) << "Selected camera photo"; 422 VLOG(1) << "Selected camera photo";
416 } 423 }
417 424
418 void ChangePictureOptionsHandler::SetCameraPresent(bool present) { 425 void ChangePictureOptionsHandler::SetCameraPresent(bool present) {
419 base::FundamentalValue present_value(present); 426 base::FundamentalValue present_value(present);
420 427
421 web_ui()->CallJavascriptFunction("ChangePictureOptions.setCameraPresent", 428 web_ui()->CallJavascriptFunction("ChangePictureOptions.setCameraPresent",
422 present_value); 429 present_value);
423 } 430 }
424 431
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
466 User* ChangePictureOptionsHandler::GetUser() const { 473 User* ChangePictureOptionsHandler::GetUser() const {
467 Profile* profile = Profile::FromWebUI(web_ui()); 474 Profile* profile = Profile::FromWebUI(web_ui());
468 User* user = ProfileHelper::Get()->GetUserByProfile(profile); 475 User* user = ProfileHelper::Get()->GetUserByProfile(profile);
469 if (!user) 476 if (!user)
470 return UserManager::Get()->GetActiveUser(); 477 return UserManager::Get()->GetActiveUser();
471 return user; 478 return user;
472 } 479 }
473 480
474 } // namespace options 481 } // namespace options
475 } // namespace chromeos 482 } // namespace chromeos
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698