| Index: chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc
|
| diff --git a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc
|
| index cea01d3729fcf978f83353aa7c390f70a9234565..611d8e53aff172fd4c4c463b65825a9fee3bf2fe 100644
|
| --- a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc
|
| +++ b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.cc
|
| @@ -33,7 +33,6 @@
|
| #include "chrome/browser/chrome_notification_types.h"
|
| #include "chrome/browser/chromeos/customization_document.h"
|
| #include "chrome/browser/chromeos/login/startup_utils.h"
|
| -#include "chrome/browser/chromeos/login/users/user.h"
|
| #include "chrome/browser/chromeos/login/users/user_manager.h"
|
| #include "chrome/browser/chromeos/login/wizard_controller.h"
|
| #include "chrome/browser/chromeos/settings/cros_settings.h"
|
| @@ -43,6 +42,7 @@
|
| #include "chromeos/chromeos_switches.h"
|
| #include "chromeos/dbus/dbus_thread_manager.h"
|
| #include "chromeos/login/user_names.h"
|
| +#include "components/user_manager/user.h"
|
| #include "components/user_manager/user_image/user_image.h"
|
| #include "components/user_manager/user_type.h"
|
| #include "content/public/browser/browser_thread.h"
|
| @@ -207,11 +207,12 @@ bool SaveWallpaperInternal(const base::FilePath& path,
|
|
|
| // Returns index of the first public session user found in |users|
|
| // or -1 otherwise.
|
| -int FindPublicSession(const chromeos::UserList& users) {
|
| +int FindPublicSession(const user_manager::UserList& users) {
|
| int index = -1;
|
| int i = 0;
|
| - for (UserList::const_iterator it = users.begin();
|
| - it != users.end(); ++it, ++i) {
|
| + for (user_manager::UserList::const_iterator it = users.begin();
|
| + it != users.end();
|
| + ++it, ++i) {
|
| if ((*it)->GetType() == user_manager::USER_TYPE_PUBLIC_ACCOUNT) {
|
| index = i;
|
| break;
|
| @@ -554,8 +555,9 @@ void WallpaperManager::ClearDisposableWallpaperCache() {
|
| weak_factory_.InvalidateWeakPtrs();
|
| // Keep the wallpaper of logged in users in cache at multi-profile mode.
|
| std::set<std::string> logged_in_users_names;
|
| - const UserList& logged_users = UserManager::Get()->GetLoggedInUsers();
|
| - for (UserList::const_iterator it = logged_users.begin();
|
| + const user_manager::UserList& logged_users =
|
| + 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());
|
| @@ -579,7 +581,8 @@ bool WallpaperManager::GetLoggedInUserWallpaperInfo(WallpaperInfo* info) {
|
| info->file = current_user_wallpaper_info_.file = "";
|
| info->layout = current_user_wallpaper_info_.layout =
|
| ash::WALLPAPER_LAYOUT_CENTER_CROPPED;
|
| - info->type = current_user_wallpaper_info_.type = User::DEFAULT;
|
| + info->type = current_user_wallpaper_info_.type =
|
| + user_manager::User::DEFAULT;
|
| info->date = current_user_wallpaper_info_.date =
|
| base::Time::Now().LocalMidnight();
|
| return true;
|
| @@ -777,14 +780,14 @@ bool WallpaperManager::IsPolicyControlled(const std::string& user_id) const {
|
| chromeos::WallpaperInfo info;
|
| if (!GetUserWallpaperInfo(user_id, &info))
|
| return false;
|
| - return info.type == chromeos::User::POLICY;
|
| + return info.type == user_manager::User::POLICY;
|
| }
|
|
|
| void WallpaperManager::OnPolicySet(const std::string& policy,
|
| const std::string& user_id) {
|
| WallpaperInfo info;
|
| GetUserWallpaperInfo(user_id, &info);
|
| - info.type = User::POLICY;
|
| + info.type = user_manager::User::POLICY;
|
| SetUserWallpaperInfo(user_id, info, true /* is_persistent */);
|
| }
|
|
|
| @@ -792,7 +795,7 @@ void WallpaperManager::OnPolicyCleared(const std::string& policy,
|
| const std::string& user_id) {
|
| WallpaperInfo info;
|
| GetUserWallpaperInfo(user_id, &info);
|
| - info.type = User::DEFAULT;
|
| + info.type = user_manager::User::DEFAULT;
|
| SetUserWallpaperInfo(user_id, info, true /* is_persistent */);
|
| SetDefaultWallpaperNow(user_id);
|
| }
|
| @@ -835,7 +838,8 @@ base::FilePath WallpaperManager::GetCustomWallpaperPath(
|
| void WallpaperManager::SetPolicyControlledWallpaper(
|
| const std::string& user_id,
|
| const user_manager::UserImage& user_image) {
|
| - const User *user = chromeos::UserManager::Get()->FindUser(user_id);
|
| + const user_manager::User* user =
|
| + chromeos::UserManager::Get()->FindUser(user_id);
|
| if (!user) {
|
| NOTREACHED() << "Unknown user.";
|
| return;
|
| @@ -844,18 +848,19 @@ void WallpaperManager::SetPolicyControlledWallpaper(
|
| user->username_hash(),
|
| "policy-controlled.jpeg",
|
| ash::WALLPAPER_LAYOUT_CENTER_CROPPED,
|
| - User::POLICY,
|
| + user_manager::User::POLICY,
|
| user_image.image(),
|
| true /* update wallpaper */);
|
| }
|
|
|
| -void WallpaperManager::SetCustomWallpaper(const std::string& user_id,
|
| - const std::string& user_id_hash,
|
| - const std::string& file,
|
| - ash::WallpaperLayout layout,
|
| - User::WallpaperType type,
|
| - const gfx::ImageSkia& image,
|
| - bool update_wallpaper) {
|
| +void WallpaperManager::SetCustomWallpaper(
|
| + const std::string& user_id,
|
| + const std::string& user_id_hash,
|
| + const std::string& file,
|
| + ash::WallpaperLayout layout,
|
| + user_manager::User::WallpaperType type,
|
| + const gfx::ImageSkia& image,
|
| + bool update_wallpaper) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| DCHECK(UserManager::Get()->IsUserLoggedIn());
|
|
|
| @@ -864,7 +869,7 @@ void WallpaperManager::SetCustomWallpaper(const std::string& user_id,
|
| return;
|
|
|
| // Don't allow custom wallpapers while policy is in effect.
|
| - if (type != User::POLICY && IsPolicyControlled(user_id))
|
| + if (type != user_manager::User::POLICY && IsPolicyControlled(user_id))
|
| return;
|
|
|
| base::FilePath wallpaper_path =
|
| @@ -983,9 +988,10 @@ void WallpaperManager::DoSetDefaultWallpaper(
|
| }
|
|
|
| // static
|
| -void WallpaperManager::RecordUma(User::WallpaperType type, int index) {
|
| +void WallpaperManager::RecordUma(user_manager::User::WallpaperType type,
|
| + int index) {
|
| UMA_HISTOGRAM_ENUMERATION(
|
| - "Ash.Wallpaper.Type", type, User::WALLPAPER_TYPE_COUNT);
|
| + "Ash.Wallpaper.Type", type, user_manager::User::WALLPAPER_TYPE_COUNT);
|
| }
|
|
|
| // static
|
| @@ -1103,7 +1109,7 @@ void WallpaperManager::InitInitialUserWallpaper(const std::string& user_id,
|
| bool is_persistent) {
|
| current_user_wallpaper_info_.file = "";
|
| current_user_wallpaper_info_.layout = ash::WALLPAPER_LAYOUT_CENTER_CROPPED;
|
| - current_user_wallpaper_info_.type = User::DEFAULT;
|
| + current_user_wallpaper_info_.type = user_manager::User::DEFAULT;
|
| current_user_wallpaper_info_.date = base::Time::Now().LocalMidnight();
|
|
|
| WallpaperInfo info = current_user_wallpaper_info_;
|
| @@ -1149,7 +1155,7 @@ void WallpaperManager::ScheduleSetUserWallpaper(const std::string& user_id,
|
| if (UserManager::Get()->IsLoggedInAsKioskApp())
|
| return;
|
| // Guest user, regular user in ephemeral mode, or kiosk app.
|
| - const User* user = UserManager::Get()->FindUser(user_id);
|
| + const user_manager::User* user = UserManager::Get()->FindUser(user_id);
|
| if (UserManager::Get()->IsUserNonCryptohomeDataEphemeral(user_id) ||
|
| (user != NULL && user->GetType() == user_manager::USER_TYPE_KIOSK_APP)) {
|
| InitInitialUserWallpaper(user_id, false);
|
| @@ -1182,7 +1188,8 @@ void WallpaperManager::ScheduleSetUserWallpaper(const std::string& user_id,
|
| return;
|
| }
|
|
|
| - if (info.type == User::CUSTOMIZED || info.type == User::POLICY) {
|
| + if (info.type == user_manager::User::CUSTOMIZED ||
|
| + info.type == user_manager::User::POLICY) {
|
| const char* sub_dir = GetCustomWallpaperSubdirForCurrentResolution();
|
| // Wallpaper is not resized when layout is ash::WALLPAPER_LAYOUT_CENTER.
|
| // Original wallpaper should be used in this case.
|
| @@ -1269,10 +1276,10 @@ bool WallpaperManager::GetWallpaperFromCache(const std::string& user_id,
|
|
|
| void WallpaperManager::CacheUsersWallpapers() {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| - UserList users = UserManager::Get()->GetUsers();
|
| + user_manager::UserList users = UserManager::Get()->GetUsers();
|
|
|
| if (!users.empty()) {
|
| - UserList::const_iterator it = users.begin();
|
| + user_manager::UserList::const_iterator it = users.begin();
|
| // Skip the wallpaper of first user in the list. It should have been cached.
|
| it++;
|
| for (int cached = 0;
|
| @@ -1294,7 +1301,8 @@ void WallpaperManager::CacheUserWallpaper(const std::string& user_id) {
|
|
|
| base::FilePath wallpaper_dir;
|
| base::FilePath wallpaper_path;
|
| - if (info.type == User::CUSTOMIZED || info.type == User::POLICY) {
|
| + if (info.type == user_manager::User::CUSTOMIZED ||
|
| + info.type == user_manager::User::POLICY) {
|
| const char* sub_dir = GetCustomWallpaperSubdirForCurrentResolution();
|
| base::FilePath wallpaper_path = GetCustomWallpaperDir(sub_dir);
|
| wallpaper_path = wallpaper_path.Append(info.file);
|
| @@ -1383,7 +1391,7 @@ void WallpaperManager::InitializeRegisteredDeviceWallpaper() {
|
| kAccountsPrefShowUserNamesOnSignIn, &show_users);
|
| DCHECK(result) << "Unable to fetch setting "
|
| << kAccountsPrefShowUserNamesOnSignIn;
|
| - const chromeos::UserList& users = UserManager::Get()->GetUsers();
|
| + const user_manager::UserList& users = UserManager::Get()->GetUsers();
|
| int public_session_user_index = FindPublicSession(users);
|
| if ((!show_users && public_session_user_index == -1) || users.empty()) {
|
| // Boot into sign in form, preload default wallpaper.
|
| @@ -1408,7 +1416,8 @@ void WallpaperManager::LoadWallpaper(const std::string& user_id,
|
| base::FilePath wallpaper_path;
|
|
|
| // Do a sanity check that file path information is not empty.
|
| - if (info.type == User::ONLINE || info.type == User::DEFAULT) {
|
| + if (info.type == user_manager::User::ONLINE ||
|
| + info.type == user_manager::User::DEFAULT) {
|
| if (info.file.empty()) {
|
| if (base::SysInfo::IsRunningOnChromeOS()) {
|
| NOTREACHED() << "User wallpaper info appears to be broken: " << user_id;
|
| @@ -1424,7 +1433,7 @@ void WallpaperManager::LoadWallpaper(const std::string& user_id,
|
| }
|
| }
|
|
|
| - if (info.type == User::ONLINE) {
|
| + if (info.type == user_manager::User::ONLINE) {
|
| std::string file_name = GURL(info.file).ExtractFileName();
|
| WallpaperResolution resolution = GetAppropriateResolution();
|
| // Only solid color wallpapers have stretch layout and they have only one
|
| @@ -1445,7 +1454,7 @@ void WallpaperManager::LoadWallpaper(const std::string& user_id,
|
| loaded_wallpapers_++;
|
| StartLoad(
|
| user_id, info, update_wallpaper, wallpaper_path, on_finish.Pass());
|
| - } else if (info.type == User::DEFAULT) {
|
| + } else if (info.type == user_manager::User::DEFAULT) {
|
| // Default wallpapers are migrated from M21 user profiles. A code refactor
|
| // overlooked that case and caused these wallpapers not being loaded at all.
|
| // On some slow devices, it caused login webui not visible after upgrade to
|
| @@ -1502,7 +1511,7 @@ bool WallpaperManager::GetUserWallpaperInfo(const std::string& user_id,
|
|
|
| info->file = file;
|
| info->layout = static_cast<ash::WallpaperLayout>(layout);
|
| - info->type = static_cast<User::WallpaperType>(type);
|
| + info->type = static_cast<user_manager::User::WallpaperType>(type);
|
| info->date = base::Time::FromInternalValue(date_val);
|
| return true;
|
| }
|
| @@ -1512,7 +1521,7 @@ void WallpaperManager::MoveCustomWallpapersSuccess(
|
| const std::string& user_id_hash) {
|
| WallpaperInfo info;
|
| GetUserWallpaperInfo(user_id, &info);
|
| - if (info.type == User::CUSTOMIZED) {
|
| + if (info.type == user_manager::User::CUSTOMIZED) {
|
| // New file field should include user id hash in addition to file name.
|
| // This is needed because at login screen, user id hash is not available.
|
| std::string relative_path =
|
| @@ -1525,7 +1534,8 @@ void WallpaperManager::MoveCustomWallpapersSuccess(
|
| }
|
|
|
| void WallpaperManager::MoveLoggedInUserCustomWallpaper() {
|
| - const User* logged_in_user = UserManager::Get()->GetLoggedInUser();
|
| + const user_manager::User* logged_in_user =
|
| + UserManager::Get()->GetLoggedInUser();
|
| task_runner_->PostTask(
|
| FROM_HERE,
|
| base::Bind(&WallpaperManager::MoveCustomWallpapersOnWorker,
|
| @@ -1547,12 +1557,9 @@ void WallpaperManager::OnWallpaperDecoded(
|
| // Use default wallpaper in this case.
|
| if (user_image.image().isNull()) {
|
| // Updates user pref to default wallpaper.
|
| - WallpaperInfo info = {
|
| - "",
|
| - ash::WALLPAPER_LAYOUT_CENTER_CROPPED,
|
| - User::DEFAULT,
|
| - base::Time::Now().LocalMidnight()
|
| - };
|
| + WallpaperInfo info = {"", ash::WALLPAPER_LAYOUT_CENTER_CROPPED,
|
| + user_manager::User::DEFAULT,
|
| + base::Time::Now().LocalMidnight()};
|
| SetUserWallpaperInfo(user_id, info, true);
|
|
|
| if (update_wallpaper)
|
|
|