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 c4be12938a6da3683fa966bfd9449187da84ac82..67fcafcf424dc596897979cb49e7567728834a42 100644 |
--- a/chrome/browser/chromeos/login/wallpaper_manager.cc |
+++ b/chrome/browser/chromeos/login/wallpaper_manager.cc |
@@ -67,6 +67,15 @@ void WallpaperManager::SetLastSelectedUser( |
last_selected_user_ = last_selected_user; |
} |
+void WallpaperManager::SetWallpaperFromFile(std::string email, |
+ const std::string& path, |
+ ash::WallpaperLayout layout) { |
+ image_loader_->Start( |
+ path, 0, false, |
+ base::Bind(&WallpaperManager::OnCustomWallpaperLoaded, |
+ base::Unretained(this), email, layout)); |
+} |
+ |
void WallpaperManager::UserDeselected() { |
if (!UserManager::Get()->IsUserLoggedIn()) { |
// This will set default login wallpaper (#fefefe). |
@@ -82,6 +91,14 @@ WallpaperManager::~WallpaperManager() { |
system::TimezoneSettings::GetInstance()->RemoveObserver(this); |
} |
+void WallpaperManager::OnCustomWallpaperLoaded(const std::string& email, |
+ ash::WallpaperLayout layout, |
+ const UserImage& user_image) { |
+ const SkBitmap& wallpaper = user_image.image(); |
+ ash::Shell::GetInstance()->desktop_background_controller()-> |
+ SetCustomWallpaper(wallpaper, layout); |
+} |
+ |
void WallpaperManager::BatchUpdateWallpaper() { |
PrefService* local_state = g_browser_process->local_state(); |
UserManager* user_manager = UserManager::Get(); |