OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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/chromeos/login/users/avatar/user_image_manager_impl.h" | 5 #include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" |
6 | 6 |
7 #include "base/bind.h" | 7 #include "base/bind.h" |
8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 392 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
403 const user_manager::UserImage& user_image) { | 403 const user_manager::UserImage& user_image) { |
404 user_image_ = user_image; | 404 user_image_ = user_image; |
405 UpdateUser(); | 405 UpdateUser(); |
406 if (save) | 406 if (save) |
407 SaveImageAndUpdateLocalState(); | 407 SaveImageAndUpdateLocalState(); |
408 else | 408 else |
409 NotifyJobDone(); | 409 NotifyJobDone(); |
410 } | 410 } |
411 | 411 |
412 void UserImageManagerImpl::Job::UpdateUser() { | 412 void UserImageManagerImpl::Job::UpdateUser() { |
413 user_manager::User* user = | 413 user_manager::User* user = parent_->GetUserAndModify(); |
414 parent_->user_manager_->FindUserAndModify(user_id()); | |
415 if (!user) | 414 if (!user) |
416 return; | 415 return; |
417 | 416 |
418 if (!user_image_.image().isNull()) { | 417 if (!user_image_.image().isNull()) { |
419 user->SetImage(user_image_, image_index_); | 418 user->SetImage(user_image_, image_index_); |
420 } else { | 419 } else { |
421 user->SetStubImage( | 420 user->SetStubImage( |
422 user_manager::UserImage( | 421 user_manager::UserImage( |
423 *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( | 422 *ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
424 IDR_PROFILE_PICTURE_LOADING)), | 423 IDR_PROFILE_PICTURE_LOADING)), |
(...skipping 19 matching lines...) Expand all Loading... |
444 | 443 |
445 void UserImageManagerImpl::Job::OnSaveImageDone(bool success) { | 444 void UserImageManagerImpl::Job::OnSaveImageDone(bool success) { |
446 if (success || image_index_ == user_manager::User::USER_IMAGE_PROFILE) | 445 if (success || image_index_ == user_manager::User::USER_IMAGE_PROFILE) |
447 UpdateLocalState(); | 446 UpdateLocalState(); |
448 NotifyJobDone(); | 447 NotifyJobDone(); |
449 } | 448 } |
450 | 449 |
451 void UserImageManagerImpl::Job::UpdateLocalState() { | 450 void UserImageManagerImpl::Job::UpdateLocalState() { |
452 // Ignore if data stored or cached outside the user's cryptohome is to be | 451 // Ignore if data stored or cached outside the user's cryptohome is to be |
453 // treated as ephemeral. | 452 // treated as ephemeral. |
454 if (parent_->user_manager_->IsUserNonCryptohomeDataEphemeral(user_id())) | 453 if (parent_->user_manager_->IsUserNonCryptohomeDataEphemeral( |
| 454 AccountId::FromUserEmail(user_id()))) |
455 return; | 455 return; |
456 | 456 |
457 scoped_ptr<base::DictionaryValue> entry(new base::DictionaryValue); | 457 scoped_ptr<base::DictionaryValue> entry(new base::DictionaryValue); |
458 entry->Set(kImagePathNodeName, new base::StringValue(image_path_.value())); | 458 entry->Set(kImagePathNodeName, new base::StringValue(image_path_.value())); |
459 entry->Set(kImageIndexNodeName, new base::FundamentalValue(image_index_)); | 459 entry->Set(kImageIndexNodeName, new base::FundamentalValue(image_index_)); |
460 if (!image_url_.is_empty()) | 460 if (!image_url_.is_empty()) |
461 entry->Set(kImageURLNodeName, new base::StringValue(image_url_.spec())); | 461 entry->Set(kImageURLNodeName, new base::StringValue(image_url_.spec())); |
462 DictionaryPrefUpdate update(g_browser_process->local_state(), | 462 DictionaryPrefUpdate update(g_browser_process->local_state(), |
463 kUserImageProperties); | 463 kUserImageProperties); |
464 update->SetWithoutPathExpansion(user_id(), entry.release()); | 464 update->SetWithoutPathExpansion(user_id(), entry.release()); |
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
762 } | 762 } |
763 | 763 |
764 void UserImageManagerImpl::OnProfileDownloadSuccess( | 764 void UserImageManagerImpl::OnProfileDownloadSuccess( |
765 ProfileDownloader* downloader) { | 765 ProfileDownloader* downloader) { |
766 // Ensure that the |profile_downloader_| is deleted when this method returns. | 766 // Ensure that the |profile_downloader_| is deleted when this method returns. |
767 scoped_ptr<ProfileDownloader> profile_downloader( | 767 scoped_ptr<ProfileDownloader> profile_downloader( |
768 profile_downloader_.release()); | 768 profile_downloader_.release()); |
769 DCHECK_EQ(downloader, profile_downloader.get()); | 769 DCHECK_EQ(downloader, profile_downloader.get()); |
770 | 770 |
771 user_manager_->UpdateUserAccountData( | 771 user_manager_->UpdateUserAccountData( |
772 user_id(), | 772 AccountId::FromUserEmail(user_id()), |
773 user_manager::UserManager::UserAccountData( | 773 user_manager::UserManager::UserAccountData( |
774 downloader->GetProfileFullName(), | 774 downloader->GetProfileFullName(), downloader->GetProfileGivenName(), |
775 downloader->GetProfileGivenName(), | |
776 downloader->GetProfileLocale())); | 775 downloader->GetProfileLocale())); |
777 if (!downloading_profile_image_) | 776 if (!downloading_profile_image_) |
778 return; | 777 return; |
779 | 778 |
780 ProfileDownloadResult result = kDownloadFailure; | 779 ProfileDownloadResult result = kDownloadFailure; |
781 switch (downloader->GetProfilePictureStatus()) { | 780 switch (downloader->GetProfilePictureStatus()) { |
782 case ProfileDownloader::PICTURE_SUCCESS: | 781 case ProfileDownloader::PICTURE_SUCCESS: |
783 result = kDownloadSuccess; | 782 result = kDownloadSuccess; |
784 break; | 783 break; |
785 case ProfileDownloader::PICTURE_CACHED: | 784 case ProfileDownloader::PICTURE_CACHED: |
(...skipping 224 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1010 // If the currently logged-in user's user image is managed, the sync observer | 1009 // If the currently logged-in user's user image is managed, the sync observer |
1011 // must not be started so that the policy-set image does not get synced out. | 1010 // must not be started so that the policy-set image does not get synced out. |
1012 if (!user_image_sync_observer_ && | 1011 if (!user_image_sync_observer_ && |
1013 user && user->CanSyncImage() && | 1012 user && user->CanSyncImage() && |
1014 !IsUserImageManaged()) { | 1013 !IsUserImageManaged()) { |
1015 user_image_sync_observer_.reset(new UserImageSyncObserver(user)); | 1014 user_image_sync_observer_.reset(new UserImageSyncObserver(user)); |
1016 } | 1015 } |
1017 } | 1016 } |
1018 | 1017 |
1019 const user_manager::User* UserImageManagerImpl::GetUser() const { | 1018 const user_manager::User* UserImageManagerImpl::GetUser() const { |
1020 return user_manager_->FindUser(user_id()); | 1019 return user_manager_->FindUser(AccountId::FromUserEmail(user_id())); |
1021 } | 1020 } |
1022 | 1021 |
1023 user_manager::User* UserImageManagerImpl::GetUserAndModify() const { | 1022 user_manager::User* UserImageManagerImpl::GetUserAndModify() const { |
1024 return user_manager_->FindUserAndModify(user_id()); | 1023 return user_manager_->FindUserAndModify(AccountId::FromUserEmail(user_id())); |
1025 } | 1024 } |
1026 | 1025 |
1027 bool UserImageManagerImpl::IsUserLoggedInAndHasGaiaAccount() const { | 1026 bool UserImageManagerImpl::IsUserLoggedInAndHasGaiaAccount() const { |
1028 const user_manager::User* user = GetUser(); | 1027 const user_manager::User* user = GetUser(); |
1029 if (!user) | 1028 if (!user) |
1030 return false; | 1029 return false; |
1031 return user->is_logged_in() && user->HasGaiaAccount(); | 1030 return user->is_logged_in() && user->HasGaiaAccount(); |
1032 } | 1031 } |
1033 | 1032 |
1034 } // namespace chromeos | 1033 } // namespace chromeos |
OLD | NEW |