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