| OLD | NEW |
| 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
er2.h" | 5 #include "chrome/browser/ui/webui/options2/chromeos/change_picture_options_handl
er2.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/metrics/histogram.h" | 9 #include "base/metrics/histogram.h" |
| 10 #include "base/path_service.h" | 10 #include "base/path_service.h" |
| (...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 182 DCHECK(args && args->empty()); | 182 DCHECK(args && args->empty()); |
| 183 // TODO(ivankr): If user opens settings and goes to Change Picture page right | 183 // TODO(ivankr): If user opens settings and goes to Change Picture page right |
| 184 // after the check started |HandlePageInitialized| has been completed, | 184 // after the check started |HandlePageInitialized| has been completed, |
| 185 // |CheckCameraPresence| will be called twice, should be throttled. | 185 // |CheckCameraPresence| will be called twice, should be throttled. |
| 186 CheckCameraPresence(); | 186 CheckCameraPresence(); |
| 187 SendSelectedImage(); | 187 SendSelectedImage(); |
| 188 UpdateProfileImage(); | 188 UpdateProfileImage(); |
| 189 } | 189 } |
| 190 | 190 |
| 191 void ChangePictureOptionsHandler::SendSelectedImage() { | 191 void ChangePictureOptionsHandler::SendSelectedImage() { |
| 192 const User& user = UserManager::Get()->logged_in_user(); | 192 const User& user = UserManager::Get()->GetLoggedInUser(); |
| 193 DCHECK(!user.email().empty()); | 193 DCHECK(!user.email().empty()); |
| 194 | 194 |
| 195 previous_image_index_ = user.image_index(); | 195 previous_image_index_ = user.image_index(); |
| 196 switch (previous_image_index_) { | 196 switch (previous_image_index_) { |
| 197 case User::kExternalImageIndex: { | 197 case User::kExternalImageIndex: { |
| 198 // User has image from camera/file, record it and add to the image list. | 198 // User has image from camera/file, record it and add to the image list. |
| 199 previous_image_ = user.image(); | 199 previous_image_ = user.image(); |
| 200 previous_image_data_url_ = web_ui_util::GetImageDataUrl(previous_image_); | 200 previous_image_data_url_ = web_ui_util::GetImageDataUrl(previous_image_); |
| 201 web_ui()->CallJavascriptFunction("ChangePictureOptions.setOldImage"); | 201 web_ui()->CallJavascriptFunction("ChangePictureOptions.setOldImage"); |
| 202 break; | 202 break; |
| (...skipping 21 matching lines...) Expand all Loading... |
| 224 web_ui()->CallJavascriptFunction("ChangePictureOptions.setProfileImage", | 224 web_ui()->CallJavascriptFunction("ChangePictureOptions.setProfileImage", |
| 225 data_url, select); | 225 data_url, select); |
| 226 } | 226 } |
| 227 | 227 |
| 228 void ChangePictureOptionsHandler::UpdateProfileImage() { | 228 void ChangePictureOptionsHandler::UpdateProfileImage() { |
| 229 UserManager* user_manager = UserManager::Get(); | 229 UserManager* user_manager = UserManager::Get(); |
| 230 | 230 |
| 231 // If we have a downloaded profile image and haven't sent it in | 231 // If we have a downloaded profile image and haven't sent it in |
| 232 // |SendSelectedImage|, send it now (without selecting). | 232 // |SendSelectedImage|, send it now (without selecting). |
| 233 if (previous_image_index_ != User::kProfileImageIndex && | 233 if (previous_image_index_ != User::kProfileImageIndex && |
| 234 !user_manager->downloaded_profile_image().empty()) | 234 !user_manager->DownloadedProfileImage().empty()) |
| 235 SendProfileImage(user_manager->downloaded_profile_image(), false); | 235 SendProfileImage(user_manager->DownloadedProfileImage(), false); |
| 236 | 236 |
| 237 user_manager->DownloadProfileImage(kProfileDownloadReason); | 237 user_manager->DownloadProfileImage(kProfileDownloadReason); |
| 238 } | 238 } |
| 239 | 239 |
| 240 void ChangePictureOptionsHandler::HandleSelectImage(const ListValue* args) { | 240 void ChangePictureOptionsHandler::HandleSelectImage(const ListValue* args) { |
| 241 std::string image_url; | 241 std::string image_url; |
| 242 if (!args || | 242 if (!args || |
| 243 args->GetSize() != 1 || | 243 args->GetSize() != 1 || |
| 244 !args->GetString(0, &image_url)) { | 244 !args->GetString(0, &image_url)) { |
| 245 NOTREACHED(); | 245 NOTREACHED(); |
| 246 return; | 246 return; |
| 247 } | 247 } |
| 248 DCHECK(!image_url.empty()); | 248 DCHECK(!image_url.empty()); |
| 249 | 249 |
| 250 UserManager* user_manager = UserManager::Get(); | 250 UserManager* user_manager = UserManager::Get(); |
| 251 const User& user = user_manager->logged_in_user(); | 251 const User& user = user_manager->GetLoggedInUser(); |
| 252 int image_index = User::kInvalidImageIndex; | 252 int image_index = User::kInvalidImageIndex; |
| 253 | 253 |
| 254 if (StartsWithASCII(image_url, chrome::kChromeUIUserImageURL, false)) { | 254 if (StartsWithASCII(image_url, chrome::kChromeUIUserImageURL, false)) { |
| 255 // Image from file/camera uses kChromeUIUserImageURL as URL while | 255 // Image from file/camera uses kChromeUIUserImageURL as URL while |
| 256 // current profile image always has a full data URL. | 256 // current profile image always has a full data URL. |
| 257 // This way transition from (current profile image) to | 257 // This way transition from (current profile image) to |
| 258 // (profile image, current image from file) is easier. | 258 // (profile image, current image from file) is easier. |
| 259 | 259 |
| 260 DCHECK(!previous_image_.empty()); | 260 DCHECK(!previous_image_.empty()); |
| 261 user_manager->SaveUserImage(user.email(), previous_image_); | 261 user_manager->SaveUserImage(user.email(), previous_image_); |
| (...skipping 25 matching lines...) Expand all Loading... |
| 287 kHistogramImagesCount); | 287 kHistogramImagesCount); |
| 288 VLOG(1) << "Selected profile image"; | 288 VLOG(1) << "Selected profile image"; |
| 289 } | 289 } |
| 290 } | 290 } |
| 291 } | 291 } |
| 292 | 292 |
| 293 void ChangePictureOptionsHandler::FileSelected(const FilePath& path, | 293 void ChangePictureOptionsHandler::FileSelected(const FilePath& path, |
| 294 int index, | 294 int index, |
| 295 void* params) { | 295 void* params) { |
| 296 UserManager* user_manager = UserManager::Get(); | 296 UserManager* user_manager = UserManager::Get(); |
| 297 user_manager->SaveUserImageFromFile(user_manager->logged_in_user().email(), | 297 user_manager->SaveUserImageFromFile(user_manager->GetLoggedInUser().email(), |
| 298 path); | 298 path); |
| 299 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", | 299 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", |
| 300 kHistogramImageFromFile, | 300 kHistogramImageFromFile, |
| 301 kHistogramImagesCount); | 301 kHistogramImagesCount); |
| 302 } | 302 } |
| 303 | 303 |
| 304 void ChangePictureOptionsHandler::OnPhotoAccepted(const SkBitmap& photo) { | 304 void ChangePictureOptionsHandler::OnPhotoAccepted(const SkBitmap& photo) { |
| 305 UserManager* user_manager = UserManager::Get(); | 305 UserManager* user_manager = UserManager::Get(); |
| 306 user_manager->SaveUserImage(user_manager->logged_in_user().email(), photo); | 306 user_manager->SaveUserImage(user_manager->GetLoggedInUser().email(), photo); |
| 307 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", | 307 UMA_HISTOGRAM_ENUMERATION("UserImage.ChangeChoice", |
| 308 kHistogramImageFromCamera, | 308 kHistogramImageFromCamera, |
| 309 kHistogramImagesCount); | 309 kHistogramImagesCount); |
| 310 } | 310 } |
| 311 | 311 |
| 312 void ChangePictureOptionsHandler::CheckCameraPresence() { | 312 void ChangePictureOptionsHandler::CheckCameraPresence() { |
| 313 CameraDetector::StartPresenceCheck( | 313 CameraDetector::StartPresenceCheck( |
| 314 base::Bind(&ChangePictureOptionsHandler::OnCameraPresenceCheckDone, | 314 base::Bind(&ChangePictureOptionsHandler::OnCameraPresenceCheckDone, |
| 315 weak_factory_.GetWeakPtr())); | 315 weak_factory_.GetWeakPtr())); |
| 316 } | 316 } |
| (...skipping 23 matching lines...) Expand all Loading... |
| 340 gfx::NativeWindow ChangePictureOptionsHandler::GetBrowserWindow() const { | 340 gfx::NativeWindow ChangePictureOptionsHandler::GetBrowserWindow() const { |
| 341 Browser* browser = | 341 Browser* browser = |
| 342 BrowserList::FindBrowserWithProfile(Profile::FromWebUI(web_ui())); | 342 BrowserList::FindBrowserWithProfile(Profile::FromWebUI(web_ui())); |
| 343 if (!browser) | 343 if (!browser) |
| 344 return NULL; | 344 return NULL; |
| 345 return browser->window()->GetNativeHandle(); | 345 return browser->window()->GetNativeHandle(); |
| 346 } | 346 } |
| 347 | 347 |
| 348 } // namespace options2 | 348 } // namespace options2 |
| 349 } // namespace chromeos | 349 } // namespace chromeos |
| OLD | NEW |