| Index: chrome/browser/chromeos/login/wallpaper_manager.cc
|
| diff --git a/chrome/browser/chromeos/login/wallpaper_manager.cc b/chrome/browser/chromeos/login/wallpaper_manager.cc
|
| index 153ba8bcc9f354db6f45c294a0659d93a35fb4f0..7934a9148666286663c322c29331695075afb969 100644
|
| --- a/chrome/browser/chromeos/login/wallpaper_manager.cc
|
| +++ b/chrome/browser/chromeos/login/wallpaper_manager.cc
|
| @@ -6,8 +6,6 @@
|
|
|
| #include <vector>
|
|
|
| -#include "ash/desktop_background/desktop_background_controller.h"
|
| -#include "ash/desktop_background/desktop_background_resources.h"
|
| #include "ash/shell.h"
|
| #include "base/command_line.h"
|
| #include "base/logging.h"
|
| @@ -56,16 +54,6 @@ const int kThumbnailHeight = 80;
|
|
|
| const int kCacheWallpaperDelayMs = 500;
|
|
|
| -// Default wallpaper index used in OOBE (first boot).
|
| -// Defined here because Chromium default index differs.
|
| -// Also see ash::WallpaperInfo kDefaultWallpapers in
|
| -// desktop_background_resources.cc
|
| -#if defined(GOOGLE_CHROME_BUILD)
|
| -const int kDefaultOOBEWallpaperIndex = 1; // IDR_AURA_WALLPAPERS_2_LANDSCAPE8
|
| -#else
|
| -const int kDefaultOOBEWallpaperIndex = 0; // IDR_AURA_WALLPAPERS_5_GRADIENT5
|
| -#endif
|
| -
|
| // A dictionary pref that maps usernames to wallpaper properties.
|
| const char kUserWallpapersProperties[] = "UserWallpapersProperties";
|
|
|
| @@ -114,8 +102,6 @@ WallpaperManager* WallpaperManager::Get() {
|
|
|
| WallpaperManager::WallpaperManager()
|
| : loaded_wallpapers_(0),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(current_default_wallpaper_index_(
|
| - ash::GetInvalidWallpaperIndex())),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(wallpaper_loader_(
|
| new UserImageLoader(ImageDecoder::ROBUST_JPEG_CODEC))),
|
| should_cache_wallpaper_(false),
|
| @@ -244,7 +230,7 @@ void WallpaperManager::InitializeWallpaper() {
|
| if (!user_manager->IsUserLoggedIn()) {
|
| if (!disable_new_oobe) {
|
| if (!WizardController::IsDeviceRegistered()) {
|
| - SetDefaultWallpaper(kDefaultOOBEWallpaperIndex);
|
| + SetDefaultWallpaper();
|
| } else {
|
| bool show_users = true;
|
| bool result = CrosSettings::Get()->GetBoolean(
|
| @@ -254,7 +240,7 @@ void WallpaperManager::InitializeWallpaper() {
|
| const chromeos::UserList& users = user_manager->GetUsers();
|
| if (!show_users || users.empty()) {
|
| // Boot into sign in form, preload default wallpaper.
|
| - SetDefaultWallpaper(kDefaultOOBEWallpaperIndex);
|
| + SetDefaultWallpaper();
|
| return;
|
| }
|
|
|
| @@ -406,7 +392,7 @@ void WallpaperManager::SetCustomWallpaper(const std::string& username,
|
| // If decoded wallpaper is empty, we are probably failed to decode the file.
|
| // Use default wallpaper in this case.
|
| if (wallpaper.image().isNull()) {
|
| - SetDefaultWallpaper(ash::GetDefaultWallpaperIndex());
|
| + SetDefaultWallpaper();
|
| return;
|
| }
|
|
|
| @@ -448,15 +434,26 @@ void WallpaperManager::SetCustomWallpaper(const std::string& username,
|
| SetUserWallpaperInfo(username, info, is_persistent);
|
| }
|
|
|
| -void WallpaperManager::SetDefaultWallpaper(int index) {
|
| +void WallpaperManager::SetDefaultWallpaper() {
|
| + ash::DesktopBackgroundController* controller =
|
| + ash::Shell::GetInstance()->desktop_background_controller();
|
| + ash::WallpaperResolution resolution = controller->GetAppropriateResolution();
|
| + ash::WallpaperInfo info;
|
| + if (UserManager::Get()->IsLoggedInAsGuest()) {
|
| + info = (resolution == ash::LARGE) ? ash::kGuestLargeWallpaper :
|
| + ash::kGuestSmallWallpaper;
|
| + } else {
|
| + info = (resolution == ash::LARGE) ? ash::kDefaultLargeWallpaper :
|
| + ash::kDefaultSmallWallpaper;
|
| + }
|
| +
|
| // Prevents loading of the same wallpaper as the currently loading/loaded one.
|
| - if (current_default_wallpaper_index_ == index)
|
| + if (controller->GetWallpaperIDR() == info.idr)
|
| return;
|
| - current_default_wallpaper_index_ = index;
|
| +
|
| current_wallpaper_path_ = FilePath("");
|
| loaded_wallpapers_++;
|
| - ash::Shell::GetInstance()->desktop_background_controller()->
|
| - SetDefaultWallpaper(index);
|
| + controller->SetDefaultWallpaper(info);
|
| }
|
|
|
| void WallpaperManager::SetInitialUserWallpaper(const std::string& username,
|
| @@ -472,12 +469,8 @@ void WallpaperManager::SetInitialUserWallpaper(const std::string& username,
|
| // Some browser tests do not have shell instance. And it is not necessary to
|
| // create a wallpaper for these tests. Add HasInstance check to prevent tests
|
| // crash and speed up the tests by avoid loading wallpaper.
|
| - if (ash::Shell::HasInstance()) {
|
| - if (username == kGuestUser)
|
| - SetDefaultWallpaper(ash::GetGuestWallpaperIndex());
|
| - else
|
| - SetDefaultWallpaper(ash::GetDefaultWallpaperIndex());
|
| - }
|
| + if (ash::Shell::HasInstance())
|
| + SetDefaultWallpaper();
|
| }
|
|
|
| void WallpaperManager::SetUserWallpaperInfo(const std::string& username,
|
| @@ -509,7 +502,7 @@ void WallpaperManager::SetLastSelectedUser(
|
| void WallpaperManager::SetUserWallpaper(const std::string& email) {
|
| DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
|
| if (email == kGuestUser) {
|
| - SetDefaultWallpaper(ash::GetGuestWallpaperIndex());
|
| + SetDefaultWallpaper();
|
| return;
|
| }
|
|
|
| @@ -534,7 +527,6 @@ void WallpaperManager::SetUserWallpaper(const std::string& email) {
|
| if (current_wallpaper_path_ == wallpaper_path)
|
| return;
|
| current_wallpaper_path_ = wallpaper_path;
|
| - current_default_wallpaper_index_ = ash::GetInvalidWallpaperIndex();
|
| loaded_wallpapers_++;
|
|
|
| BrowserThread::PostTask(
|
| @@ -548,7 +540,7 @@ void WallpaperManager::SetUserWallpaper(const std::string& email) {
|
| if (info.file.empty()) {
|
| // Uses default built-in wallpaper when file is empty. Eventually, we
|
| // will only ship one built-in wallpaper in ChromeOS image.
|
| - SetDefaultWallpaper(ash::GetDefaultWallpaperIndex());
|
| + SetDefaultWallpaper();
|
| return;
|
| }
|
|
|
| @@ -560,10 +552,6 @@ void WallpaperManager::SetUserWallpaper(const std::string& email) {
|
| }
|
| }
|
|
|
| -void WallpaperManager::SetSigninWallpaper() {
|
| - SetDefaultWallpaper(kDefaultOOBEWallpaperIndex);
|
| -}
|
| -
|
| void WallpaperManager::SetWallpaperFromImageSkia(
|
| const gfx::ImageSkia& wallpaper,
|
| ash::WallpaperLayout layout) {
|
| @@ -699,10 +687,8 @@ void WallpaperManager::LoadWallpaper(const std::string& email,
|
| wallpaper_path = wallpaper_dir.Append(file_name);
|
| if (current_wallpaper_path_ == wallpaper_path)
|
| return;
|
| - if (update_wallpaper) {
|
| + if (update_wallpaper)
|
| current_wallpaper_path_ = wallpaper_path;
|
| - current_default_wallpaper_index_ = ash::GetInvalidWallpaperIndex();
|
| - }
|
| loaded_wallpapers_++;
|
| StartLoad(email, info, update_wallpaper, wallpaper_path);
|
| } else {
|
| @@ -822,12 +808,8 @@ void WallpaperManager::OnWallpaperDecoded(const std::string& email,
|
| };
|
| SetUserWallpaperInfo(email, info, true);
|
|
|
| - if (update_wallpaper) {
|
| - SetDefaultWallpaper(ash::GetDefaultWallpaperIndex());
|
| - } else {
|
| - ash::Shell::GetInstance()->desktop_background_controller()->
|
| - CacheDefaultWallpaper(ash::GetDefaultWallpaperIndex());
|
| - }
|
| + if (update_wallpaper)
|
| + SetDefaultWallpaper();
|
| return;
|
| }
|
| // Generate all reps before passing to another thread.
|
| @@ -898,13 +880,6 @@ void WallpaperManager::SaveCustomWallpaper(const std::string& email,
|
| void WallpaperManager::RecordUma(User::WallpaperType type, int index) {
|
| UMA_HISTOGRAM_ENUMERATION("Ash.Wallpaper.Type", type,
|
| User::WALLPAPER_TYPE_COUNT);
|
| - if (type == User::DEFAULT) {
|
| - if (index >= 0) {
|
| - // TODO(sschmitz): Remove "if" when the index for new UI is available.
|
| - UMA_HISTOGRAM_ENUMERATION("Ash.Wallpaper.DefaultIndex", index,
|
| - ash::GetWallpaperCount());
|
| - }
|
| - }
|
| }
|
|
|
| void WallpaperManager::SaveWallpaperInternal(const FilePath& path,
|
|
|