Index: chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc |
diff --git a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc |
index 1ad36853b716be1753b702590850f921ad793627..e0da7c027dd9996d06e07b05c766e02125520289 100644 |
--- a/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc |
+++ b/chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.cc |
@@ -5,6 +5,7 @@ |
#include "chrome/browser/chromeos/login/users/avatar/user_image_manager_impl.h" |
#include <stddef.h> |
+ |
#include <utility> |
#include "base/bind.h" |
@@ -12,6 +13,7 @@ |
#include "base/files/file_util.h" |
#include "base/logging.h" |
#include "base/macros.h" |
+#include "base/memory/ptr_util.h" |
#include "base/metrics/histogram.h" |
#include "base/path_service.h" |
#include "base/rand_util.h" |
@@ -148,7 +150,7 @@ int ImageIndexToHistogramIndex(int image_index) { |
} |
} |
-bool SaveImage(scoped_ptr<user_manager::UserImage::Bytes> image_bytes, |
+bool SaveImage(std::unique_ptr<user_manager::UserImage::Bytes> image_bytes, |
const base::FilePath& image_path) { |
if (image_bytes->empty() || |
base::WriteFile(image_path, |
@@ -202,12 +204,12 @@ class UserImageManagerImpl::Job { |
// Saves the |user_image| to disk and sets the user image in local |
// state to that image. Also updates the user with the new image. |
void SetToImage(int image_index, |
- scoped_ptr<user_manager::UserImage> user_image); |
+ std::unique_ptr<user_manager::UserImage> user_image); |
// Decodes the JPEG image |data|, crops and resizes the image, saves |
// it to disk and sets the user image in local state to that image. |
// Also updates the user object with the new image. |
- void SetToImageData(scoped_ptr<std::string> data); |
+ void SetToImageData(std::unique_ptr<std::string> data); |
// Loads the image at |path|, transcodes it to JPEG format, saves |
// the image to disk and sets the user image in local state to that |
@@ -222,20 +224,21 @@ class UserImageManagerImpl::Job { |
private: |
// Called back after an image has been loaded from disk. |
void OnLoadImageDone(bool save, |
- scoped_ptr<user_manager::UserImage> user_image); |
+ std::unique_ptr<user_manager::UserImage> user_image); |
// Updates the user object with |user_image|. |
- void UpdateUser(scoped_ptr<user_manager::UserImage> user_image); |
+ void UpdateUser(std::unique_ptr<user_manager::UserImage> user_image); |
// Updates the user object with |user_image|, and saves the image |
// bytes. Local state will be updated as needed. |
- void UpdateUserAndSaveImage(scoped_ptr<user_manager::UserImage> user_image); |
+ void UpdateUserAndSaveImage( |
+ std::unique_ptr<user_manager::UserImage> user_image); |
// Saves |image_bytes| to disk in JPEG format if |
// |image_is_safe_format|. Local state will be updated as needed. |
void SaveImageAndUpdateLocalState( |
bool image_is_safe_format, |
- scoped_ptr<user_manager::UserImage::Bytes> image_bytes); |
+ std::unique_ptr<user_manager::UserImage::Bytes> image_bytes); |
// Called back after the user image has been saved to |
// disk. Updates the user image information in local state. The |
@@ -292,8 +295,9 @@ void UserImageManagerImpl::Job::LoadImage(base::FilePath image_path, |
if (image_index_ >= 0 && |
image_index_ < default_user_image::kDefaultImagesCount) { |
// Load one of the default images. This happens synchronously. |
- scoped_ptr<user_manager::UserImage> user_image(new user_manager::UserImage( |
- default_user_image::GetDefaultImage(image_index_))); |
+ std::unique_ptr<user_manager::UserImage> user_image( |
+ new user_manager::UserImage( |
+ default_user_image::GetDefaultImage(image_index_))); |
UpdateUser(std::move(user_image)); |
NotifyJobDone(); |
} else if (image_index_ == user_manager::User::USER_IMAGE_EXTERNAL || |
@@ -322,8 +326,9 @@ void UserImageManagerImpl::Job::SetToDefaultImage(int default_image_index) { |
DCHECK_GT(default_user_image::kDefaultImagesCount, default_image_index); |
image_index_ = default_image_index; |
- scoped_ptr<user_manager::UserImage> user_image(new user_manager::UserImage( |
- default_user_image::GetDefaultImage(image_index_))); |
+ std::unique_ptr<user_manager::UserImage> user_image( |
+ new user_manager::UserImage( |
+ default_user_image::GetDefaultImage(image_index_))); |
UpdateUser(std::move(user_image)); |
UpdateLocalState(); |
@@ -332,7 +337,7 @@ void UserImageManagerImpl::Job::SetToDefaultImage(int default_image_index) { |
void UserImageManagerImpl::Job::SetToImage( |
int image_index, |
- scoped_ptr<user_manager::UserImage> user_image) { |
+ std::unique_ptr<user_manager::UserImage> user_image) { |
DCHECK(!run_); |
run_ = true; |
@@ -344,7 +349,8 @@ void UserImageManagerImpl::Job::SetToImage( |
UpdateUserAndSaveImage(std::move(user_image)); |
} |
-void UserImageManagerImpl::Job::SetToImageData(scoped_ptr<std::string> data) { |
+void UserImageManagerImpl::Job::SetToImageData( |
+ std::unique_ptr<std::string> data) { |
DCHECK(!run_); |
run_ = true; |
@@ -385,7 +391,7 @@ void UserImageManagerImpl::Job::SetToPath(const base::FilePath& path, |
void UserImageManagerImpl::Job::OnLoadImageDone( |
bool save, |
- scoped_ptr<user_manager::UserImage> user_image) { |
+ std::unique_ptr<user_manager::UserImage> user_image) { |
if (save) { |
UpdateUserAndSaveImage(std::move(user_image)); |
} else { |
@@ -395,7 +401,7 @@ void UserImageManagerImpl::Job::OnLoadImageDone( |
} |
void UserImageManagerImpl::Job::UpdateUser( |
- scoped_ptr<user_manager::UserImage> user_image) { |
+ std::unique_ptr<user_manager::UserImage> user_image) { |
user_manager::User* user = parent_->GetUserAndModify(); |
if (!user) |
return; |
@@ -404,7 +410,7 @@ void UserImageManagerImpl::Job::UpdateUser( |
user->SetImage(std::move(user_image), image_index_); |
} else { |
user->SetStubImage( |
- make_scoped_ptr(new user_manager::UserImage( |
+ base::WrapUnique(new user_manager::UserImage( |
*ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
IDR_PROFILE_PICTURE_LOADING))), |
image_index_, false); |
@@ -415,14 +421,14 @@ void UserImageManagerImpl::Job::UpdateUser( |
} |
void UserImageManagerImpl::Job::UpdateUserAndSaveImage( |
- scoped_ptr<user_manager::UserImage> user_image) { |
+ std::unique_ptr<user_manager::UserImage> user_image) { |
// TODO(crbug.com/593251): Remove the data copy. |
// Copy the image bytes, before the user image is passed to |
// UpdateUser(). This is needed to safely save the data bytes to the disk |
// in the blocking pool. Copying is not desirable but the user image is |
// JPEG data of 512x512 pixels (usually <100KB) hence it's not enormous. |
const bool image_is_safe_format = user_image->is_safe_format(); |
- scoped_ptr<user_manager::UserImage::Bytes> copied_bytes; |
+ std::unique_ptr<user_manager::UserImage::Bytes> copied_bytes; |
if (image_is_safe_format) { |
copied_bytes.reset( |
new user_manager::UserImage::Bytes(user_image->image_bytes())); |
@@ -435,7 +441,7 @@ void UserImageManagerImpl::Job::UpdateUserAndSaveImage( |
void UserImageManagerImpl::Job::SaveImageAndUpdateLocalState( |
bool image_is_safe_format, |
- scoped_ptr<user_manager::UserImage::Bytes> image_bytes) { |
+ std::unique_ptr<user_manager::UserImage::Bytes> image_bytes) { |
base::FilePath user_data_dir; |
PathService::Get(chrome::DIR_USER_DATA, &user_data_dir); |
image_path_ = user_data_dir.Append(user_id() + kSafeImagePathExtension); |
@@ -476,7 +482,7 @@ void UserImageManagerImpl::Job::UpdateLocalState() { |
AccountId::FromUserEmail(user_id()))) |
return; |
- scoped_ptr<base::DictionaryValue> entry(new base::DictionaryValue); |
+ std::unique_ptr<base::DictionaryValue> entry(new base::DictionaryValue); |
entry->Set(kImagePathNodeName, new base::StringValue(image_path_.value())); |
entry->Set(kImageIndexNodeName, new base::FundamentalValue(image_index_)); |
if (!image_url_.is_empty()) |
@@ -537,7 +543,7 @@ void UserImageManagerImpl::LoadUserImage() { |
image_properties->GetInteger(kImageIndexNodeName, &image_index); |
if (image_index >= 0 && |
image_index < default_user_image::kDefaultImagesCount) { |
- user->SetImage(make_scoped_ptr(new user_manager::UserImage( |
+ user->SetImage(base::WrapUnique(new user_manager::UserImage( |
default_user_image::GetDefaultImage(image_index))), |
image_index); |
return; |
@@ -556,7 +562,7 @@ void UserImageManagerImpl::LoadUserImage() { |
image_properties->GetString(kImagePathNodeName, &image_path); |
user->SetImageURL(image_url); |
- user->SetStubImage(make_scoped_ptr(new user_manager::UserImage( |
+ user->SetStubImage(base::WrapUnique(new user_manager::UserImage( |
*ResourceBundle::GetSharedInstance().GetImageSkiaNamed( |
IDR_PROFILE_PICTURE_LOADING))), |
image_index, true); |
@@ -628,7 +634,7 @@ void UserImageManagerImpl::SaveUserDefaultImageIndex(int default_image_index) { |
} |
void UserImageManagerImpl::SaveUserImage( |
- scoped_ptr<user_manager::UserImage> user_image) { |
+ std::unique_ptr<user_manager::UserImage> user_image) { |
if (IsUserImageManaged()) |
return; |
job_.reset(new Job(this)); |
@@ -651,7 +657,7 @@ void UserImageManagerImpl::SaveUserImageFromProfileImage() { |
job_.reset(new Job(this)); |
job_->SetToImage(user_manager::User::USER_IMAGE_PROFILE, |
downloaded_profile_image_.isNull() |
- ? make_scoped_ptr(new user_manager::UserImage) |
+ ? base::WrapUnique(new user_manager::UserImage) |
: user_manager::UserImage::CreateAndEncode( |
downloaded_profile_image_)); |
// If no profile image has been downloaded yet, ensure that a download is |
@@ -705,8 +711,9 @@ void UserImageManagerImpl::OnExternalDataCleared(const std::string& policy) { |
TryToCreateImageSyncObserver(); |
} |
-void UserImageManagerImpl::OnExternalDataFetched(const std::string& policy, |
- scoped_ptr<std::string> data) { |
+void UserImageManagerImpl::OnExternalDataFetched( |
+ const std::string& policy, |
+ std::unique_ptr<std::string> data) { |
DCHECK_EQ(policy::key::kUserAvatarImage, policy); |
DCHECK(IsUserImageManaged()); |
if (data) { |
@@ -743,7 +750,7 @@ bool UserImageManagerImpl::IsPreSignin() const { |
void UserImageManagerImpl::OnProfileDownloadSuccess( |
ProfileDownloader* downloader) { |
// Ensure that the |profile_downloader_| is deleted when this method returns. |
- scoped_ptr<ProfileDownloader> profile_downloader( |
+ std::unique_ptr<ProfileDownloader> profile_downloader( |
profile_downloader_.release()); |
DCHECK_EQ(downloader, profile_downloader.get()); |