Index: components/wallpaper/wallpaper_manager_base.cc |
diff --git a/components/wallpaper/wallpaper_manager_base.cc b/components/wallpaper/wallpaper_manager_base.cc |
index 3e0b014eca98e714f0cc948906aaf64a9e20632e..4071ae54078dbbd7809fc633f7ded0ff871d9e5e 100644 |
--- a/components/wallpaper/wallpaper_manager_base.cc |
+++ b/components/wallpaper/wallpaper_manager_base.cc |
@@ -28,6 +28,7 @@ |
#include "chromeos/dbus/dbus_thread_manager.h" |
#include "chromeos/login/user_names.h" |
#include "components/user_manager/user.h" |
+#include "components/user_manager/user_id.h" |
#include "components/user_manager/user_image/user_image.h" |
#include "components/user_manager/user_manager.h" |
#include "components/user_manager/user_type.h" |
@@ -74,12 +75,12 @@ int dir_chromeos_custom_wallpapers_path_id = |
-1; // chrome::DIR_CHROMEOS_CUSTOM_WALLPAPERS |
bool MoveCustomWallpaperDirectory(const char* sub_dir, |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
const std::string& user_id_hash) { |
base::FilePath base_path = |
WallpaperManagerBase::GetCustomWallpaperDir(sub_dir); |
base::FilePath to_path = base_path.Append(user_id_hash); |
- base::FilePath from_path = base_path.Append(user_id); |
+ base::FilePath from_path = base_path.Append(user_id.GetUserEmail()); |
if (base::PathExists(from_path)) |
return base::Move(from_path, to_path); |
return false; |
@@ -258,19 +259,19 @@ WallpaperManagerBase::TestApi::~TestApi() { |
} |
bool WallpaperManagerBase::TestApi::GetWallpaperFromCache( |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
gfx::ImageSkia* image) { |
return wallpaper_manager_->GetWallpaperFromCache(user_id, image); |
} |
bool WallpaperManagerBase::TestApi::GetPathFromCache( |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
base::FilePath* path) { |
return wallpaper_manager_->GetPathFromCache(user_id, path); |
} |
void WallpaperManagerBase::TestApi::SetWallpaperCache( |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
const base::FilePath& path, |
const gfx::ImageSkia& image) { |
DCHECK(!image.isNull()); |
@@ -318,25 +319,25 @@ void WallpaperManagerBase::EnsureLoggedInUserWallpaperLoaded() { |
return; |
} |
SetUserWallpaperNow( |
- user_manager::UserManager::Get()->GetLoggedInUser()->email()); |
+ user_manager::UserManager::Get()->GetLoggedInUser()->GetUserID()); |
} |
void WallpaperManagerBase::ClearDisposableWallpaperCache() { |
// Cancel callback for previous cache requests. |
weak_factory_.InvalidateWeakPtrs(); |
// Keep the wallpaper of logged in users in cache at multi-profile mode. |
- std::set<std::string> logged_in_users_names; |
+ std::set<user_manager::UserID> logged_in_users_ids; |
const user_manager::UserList& logged_users = |
user_manager::UserManager::Get()->GetLoggedInUsers(); |
for (user_manager::UserList::const_iterator it = logged_users.begin(); |
it != logged_users.end(); ++it) { |
- logged_in_users_names.insert((*it)->email()); |
+ logged_in_users_ids.insert((*it)->GetUserID()); |
} |
CustomWallpaperMap logged_in_users_cache; |
for (CustomWallpaperMap::iterator it = wallpaper_cache_.begin(); |
it != wallpaper_cache_.end(); ++it) { |
- if (logged_in_users_names.find(it->first) != logged_in_users_names.end()) { |
+ if (logged_in_users_ids.find(it->first) != logged_in_users_ids.end()) { |
logged_in_users_cache.insert(*it); |
} |
} |
@@ -358,7 +359,7 @@ bool WallpaperManagerBase::GetLoggedInUserWallpaperInfo(WallpaperInfo* info) { |
} |
return GetUserWallpaperInfo( |
- user_manager::UserManager::Get()->GetLoggedInUser()->email(), info); |
+ user_manager::UserManager::Get()->GetLoggedInUser()->GetUserID(), info); |
} |
// static |
@@ -443,7 +444,7 @@ bool WallpaperManagerBase::ResizeAndSaveWallpaper(const gfx::ImageSkia& image, |
} |
bool WallpaperManagerBase::IsPolicyControlled( |
- const std::string& user_id) const { |
+ const user_manager::UserID& user_id) const { |
WallpaperInfo info; |
if (!GetUserWallpaperInfo(user_id, &info)) |
return false; |
@@ -451,7 +452,7 @@ bool WallpaperManagerBase::IsPolicyControlled( |
} |
void WallpaperManagerBase::OnPolicySet(const std::string& policy, |
- const std::string& user_id) { |
+ const user_manager::UserID& user_id) { |
WallpaperInfo info; |
GetUserWallpaperInfo(user_id, &info); |
info.type = user_manager::User::POLICY; |
@@ -459,7 +460,7 @@ void WallpaperManagerBase::OnPolicySet(const std::string& policy, |
} |
void WallpaperManagerBase::OnPolicyCleared(const std::string& policy, |
- const std::string& user_id) { |
+ const user_manager::UserID& user_id) { |
WallpaperInfo info; |
GetUserWallpaperInfo(user_id, &info); |
info.type = user_manager::User::DEFAULT; |
@@ -479,6 +480,7 @@ base::FilePath WallpaperManagerBase::GetCustomWallpaperPath( |
WallpaperManagerBase::WallpaperManagerBase() |
: loaded_wallpapers_for_test_(0), |
command_line_for_testing_(NULL), |
+ last_selected_user_(std::string(), std::string()), |
should_cache_wallpaper_(false), |
weak_factory_(this) { |
SetDefaultWallpaperPathsFromCommandLine( |
@@ -498,7 +500,7 @@ WallpaperManagerBase::~WallpaperManagerBase() { |
} |
void WallpaperManagerBase::SetPolicyControlledWallpaper( |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
const user_manager::UserImage& user_image) { |
const user_manager::User* user = |
user_manager::UserManager::Get()->FindUser(user_id); |
@@ -522,7 +524,7 @@ void WallpaperManagerBase::SetPolicyControlledWallpaper( |
} |
void WallpaperManagerBase::SetCustomWallpaperOnSanitizedUsername( |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
const gfx::ImageSkia& image, |
bool update_wallpaper, |
bool cryptohome_success, |
@@ -571,7 +573,7 @@ void WallpaperManagerBase::SaveCustomWallpaper( |
// static |
void WallpaperManagerBase::MoveCustomWallpapersOnWorker( |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
const std::string& user_id_hash, |
base::WeakPtr<WallpaperManagerBase> weak_ptr) { |
if (MoveCustomWallpaperDirectory(kOriginalWallpaperSubDir, user_id, |
@@ -592,7 +594,7 @@ void WallpaperManagerBase::MoveCustomWallpapersOnWorker( |
// static |
void WallpaperManagerBase::GetCustomWallpaperInternal( |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
const WallpaperInfo& info, |
const base::FilePath& wallpaper_path, |
bool update_wallpaper, |
@@ -610,7 +612,7 @@ void WallpaperManagerBase::GetCustomWallpaperInternal( |
if (!base::PathExists(valid_path)) { |
// Falls back to custom wallpaper that uses email as part of its file path. |
// Note that email is used instead of user_id_hash here. |
- valid_path = GetCustomWallpaperPath(kOriginalWallpaperSubDir, user_id, |
+ valid_path = GetCustomWallpaperPath(kOriginalWallpaperSubDir, user_id.GetUserEmail() /* FIXME! */, |
info.location); |
} |
@@ -630,7 +632,7 @@ void WallpaperManagerBase::GetCustomWallpaperInternal( |
} |
} |
-void WallpaperManagerBase::InitInitialUserWallpaper(const std::string& user_id, |
+void WallpaperManagerBase::InitInitialUserWallpaper(const user_manager::UserID& user_id, |
bool is_persistent) { |
current_user_wallpaper_info_.location = ""; |
current_user_wallpaper_info_.layout = WALLPAPER_LAYOUT_CENTER_CROPPED; |
@@ -641,11 +643,11 @@ void WallpaperManagerBase::InitInitialUserWallpaper(const std::string& user_id, |
SetUserWallpaperInfo(user_id, info, is_persistent); |
} |
-void WallpaperManagerBase::SetUserWallpaperDelayed(const std::string& user_id) { |
+void WallpaperManagerBase::SetUserWallpaperDelayed(const user_manager::UserID& user_id) { |
ScheduleSetUserWallpaper(user_id, true); |
} |
-void WallpaperManagerBase::SetUserWallpaperNow(const std::string& user_id) { |
+void WallpaperManagerBase::SetUserWallpaperNow(const user_manager::UserID& user_id) { |
ScheduleSetUserWallpaper(user_id, false); |
} |
@@ -658,7 +660,7 @@ void WallpaperManagerBase::UpdateWallpaper(bool clear_cache) { |
// be set. It could result a black screen on external monitors. |
// See http://crbug.com/265689 for detail. |
if (last_selected_user_.empty()) { |
- SetDefaultWallpaperNow(chromeos::login::kSignInUser); |
+ SetDefaultWallpaperNow(chromeos::login::GetSignInUserID()); |
return; |
} |
SetUserWallpaperNow(last_selected_user_); |
@@ -681,7 +683,7 @@ void WallpaperManagerBase::NotifyAnimationFinished() { |
// WallpaperManager, protected: ----------------------------------------------- |
-bool WallpaperManagerBase::GetWallpaperFromCache(const std::string& user_id, |
+bool WallpaperManagerBase::GetWallpaperFromCache(const user_manager::UserID& user_id, |
gfx::ImageSkia* image) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
CustomWallpaperMap::const_iterator it = wallpaper_cache_.find(user_id); |
@@ -692,7 +694,7 @@ bool WallpaperManagerBase::GetWallpaperFromCache(const std::string& user_id, |
return false; |
} |
-bool WallpaperManagerBase::GetPathFromCache(const std::string& user_id, |
+bool WallpaperManagerBase::GetPathFromCache(const user_manager::UserID& user_id, |
base::FilePath* path) { |
DCHECK_CURRENTLY_ON(BrowserThread::UI); |
CustomWallpaperMap::const_iterator it = wallpaper_cache_.find(user_id); |
@@ -718,13 +720,12 @@ void WallpaperManagerBase::CacheUsersWallpapers() { |
it++; |
for (int cached = 0; it != users.end() && cached < kMaxWallpapersToCache; |
++it, ++cached) { |
- std::string user_id = (*it)->email(); |
- CacheUserWallpaper(user_id); |
+ CacheUserWallpaper((*it)->GetUserID()); |
} |
} |
} |
-void WallpaperManagerBase::CacheUserWallpaper(const std::string& user_id) { |
+void WallpaperManagerBase::CacheUserWallpaper(const user_manager::UserID& user_id) { |
CustomWallpaperMap::iterator it = wallpaper_cache_.find(user_id); |
if (it != wallpaper_cache_.end() && !it->second.second.isNull()) |
return; |
@@ -757,31 +758,31 @@ void WallpaperManagerBase::CacheUserWallpaper(const std::string& user_id) { |
} |
void WallpaperManagerBase::DeleteUserWallpapers( |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
const std::string& path_to_file) { |
std::vector<base::FilePath> file_to_remove; |
// Remove small user wallpaper. |
base::FilePath wallpaper_path = GetCustomWallpaperDir(kSmallWallpaperSubDir); |
// Remove old directory if exists |
- file_to_remove.push_back(wallpaper_path.Append(user_id)); |
+ file_to_remove.push_back(wallpaper_path.Append(user_id.GetUserEmail())); |
wallpaper_path = wallpaper_path.Append(path_to_file).DirName(); |
file_to_remove.push_back(wallpaper_path); |
// Remove large user wallpaper. |
wallpaper_path = GetCustomWallpaperDir(kLargeWallpaperSubDir); |
- file_to_remove.push_back(wallpaper_path.Append(user_id)); |
+ file_to_remove.push_back(wallpaper_path.Append(user_id.GetUserEmail())); |
wallpaper_path = wallpaper_path.Append(path_to_file); |
file_to_remove.push_back(wallpaper_path); |
// Remove user wallpaper thumbnail. |
wallpaper_path = GetCustomWallpaperDir(kThumbnailWallpaperSubDir); |
- file_to_remove.push_back(wallpaper_path.Append(user_id)); |
+ file_to_remove.push_back(wallpaper_path.Append(user_id.GetUserEmail())); |
wallpaper_path = wallpaper_path.Append(path_to_file); |
file_to_remove.push_back(wallpaper_path); |
// Remove original user wallpaper. |
wallpaper_path = GetCustomWallpaperDir(kOriginalWallpaperSubDir); |
- file_to_remove.push_back(wallpaper_path.Append(user_id)); |
+ file_to_remove.push_back(wallpaper_path.Append(user_id.GetUserEmail())); |
wallpaper_path = wallpaper_path.Append(path_to_file); |
file_to_remove.push_back(wallpaper_path); |
@@ -803,7 +804,7 @@ base::CommandLine* WallpaperManagerBase::GetCommandLine() { |
} |
void WallpaperManagerBase::LoadWallpaper( |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
const WallpaperInfo& info, |
bool update_wallpaper, |
MovableOnDestroyCallbackHolder on_finish) { |
@@ -815,12 +816,12 @@ void WallpaperManagerBase::LoadWallpaper( |
info.type == user_manager::User::DEFAULT) { |
if (info.location.empty()) { |
if (base::SysInfo::IsRunningOnChromeOS()) { |
- NOTREACHED() << "User wallpaper info appears to be broken: " << user_id; |
+ NOTREACHED() << "User wallpaper info appears to be broken: " << user_id.GetUserEmail(); |
} else { |
// Filename might be empty on debug configurations when stub users |
// were created directly in Local State (for testing). Ignore such |
// errors i.e. allowsuch type of debug configurations on the desktop. |
- LOG(WARNING) << "User wallpaper info is empty: " << user_id; |
+ LOG(WARNING) << "User wallpaper info is empty: " << user_id.GetUserEmail(); |
// |on_finish| callback will get called on destruction. |
return; |
@@ -875,7 +876,7 @@ void WallpaperManagerBase::LoadWallpaper( |
} |
void WallpaperManagerBase::MoveCustomWallpapersSuccess( |
- const std::string& user_id, |
+ const user_manager::UserID& user_id, |
const std::string& user_id_hash) { |
WallpaperInfo info; |
GetUserWallpaperInfo(user_id, &info); |
@@ -897,7 +898,7 @@ void WallpaperManagerBase::MoveLoggedInUserCustomWallpaper() { |
task_runner_->PostTask( |
FROM_HERE, |
base::Bind(&WallpaperManagerBase::MoveCustomWallpapersOnWorker, |
- logged_in_user->email(), logged_in_user->username_hash(), |
+ logged_in_user->GetUserID(), logged_in_user->username_hash(), |
weak_factory_.GetWeakPtr())); |
} |
} |