Index: chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h |
diff --git a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h |
index 206bcfef59cdcdbc00b4f32743db763bd0f3e87e..f4c1a9523d2f96cc2f00b667069fab56c9046928 100644 |
--- a/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h |
+++ b/chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h |
@@ -13,6 +13,7 @@ |
#include "base/macros.h" |
#include "base/memory/ref_counted_memory.h" |
#include "base/memory/weak_ptr.h" |
+#include "chrome/browser/chromeos/customization/customization_wallpaper_downloader.h" |
#include "chrome/browser/chromeos/settings/cros_settings.h" |
#include "components/user_manager/user.h" |
#include "components/user_manager/user_image/user_image.h" |
@@ -81,6 +82,7 @@ class WallpaperManager |
size_t GetPendingListSizeForTesting() const override; |
wallpaper::WallpaperFilesId GetFilesId( |
const AccountId& account_id) const override; |
+ bool SetDeviceWallpaperIfApplicable(const AccountId& account_id) override; |
// ash::mojom::WallpaperPicker: |
void Open() override; |
@@ -115,10 +117,40 @@ class WallpaperManager |
const AccountId& account_id, |
std::unique_ptr<user_manager::UserImage> user_image); |
+ // This is called when the device wallpaper policy changes. |
+ void OnDeviceWallpaperPolicyChanged(); |
+ // This is call after checking if the device wallpaper exists. |
+ void OnDeviceWallpaperExists(const AccountId& account_id, |
+ const std::string& url, |
+ const std::string& hash, |
+ bool exist); |
+ // This is called after the device wallpaper is download (either successful or |
+ // failed). |
+ void OnDeviceWallpaperDownloaded(const AccountId& account_id, |
+ const std::string& hash, |
+ bool success, |
+ const GURL& url); |
+ // Check if the device wallpaper matches the hash that's provided in the |
+ // device wallpaper policy setting. |
+ void OnCheckDeviceWallpaperMatchHash(const AccountId& account_id, |
+ const std::string& url, |
+ const std::string& hash, |
+ bool match); |
+ // This is called when the device wallpaper is decoded successfully. |
+ void OnDeviceWallpaperDecoded( |
+ const AccountId& account_id, |
+ std::unique_ptr<user_manager::UserImage> user_image); |
+ |
// wallpaper::WallpaperManagerBase: |
void InitializeRegisteredDeviceWallpaper() override; |
bool GetUserWallpaperInfo(const AccountId& account_id, |
wallpaper::WallpaperInfo* info) const override; |
+ // Returns true if the device wallpaper should be set for the account. |
+ bool ShouldSetDeviceWallpaper(const AccountId& account_id, |
+ std::string* url, |
+ std::string* hash) override; |
+ base::FilePath GetDeviceWallpaperDir() override; |
+ base::FilePath GetDeviceWallpaperFilePath() override; |
void OnWallpaperDecoded( |
const AccountId& account_id, |
wallpaper::WallpaperLayout layout, |
@@ -165,6 +197,12 @@ class WallpaperManager |
std::unique_ptr<CrosSettings::ObserverSubscription> |
show_user_name_on_signin_subscription_; |
+ std::unique_ptr<CrosSettings::ObserverSubscription> |
+ device_wallpaper_image_subscription_; |
+ std::unique_ptr<CustomizationWallpaperDownloader> |
+ device_wallpaper_downloader_; |
+ bool retry_download_if_failed_ = true; |
+ |
// Pointer to last inactive (waiting) entry of 'loading_' list. |
// NULL when there is no inactive request. |
PendingWallpaper* pending_inactive_; |