| Index: chrome/browser/chromeos/login/wallpaper_manager.h
|
| diff --git a/chrome/browser/chromeos/login/wallpaper_manager.h b/chrome/browser/chromeos/login/wallpaper_manager.h
|
| index 1a76f780d537360f84ef2c2845dc291e6fe67587..e32280c538abc08b72f7e68554e19db9dde85738 100644
|
| --- a/chrome/browser/chromeos/login/wallpaper_manager.h
|
| +++ b/chrome/browser/chromeos/login/wallpaper_manager.h
|
| @@ -81,8 +81,8 @@ extern const int kLargeWallpaperMaxHeight;
|
| extern const int kWallpaperThumbnailWidth;
|
| extern const int kWallpaperThumbnailHeight;
|
|
|
| -// This class maintains wallpapers for users who have logged into this Chrome
|
| -// OS device.
|
| +// This singleton class maintains wallpapers for users who have logged into this
|
| +// Chrome OS device.
|
| class WallpaperManager: public content::NotificationObserver {
|
| public:
|
| enum WallpaperResolution {
|
| @@ -146,7 +146,7 @@ class WallpaperManager: public content::NotificationObserver {
|
| // - need to LoadWallpaper(), resize and install.
|
| // 3) wallpaper path is not NULL, load image URL, then resize, etc...
|
| // 4) SetDefaultWallpaper (either on some error, or when user is new).
|
| - void ResetSetWallpaperImage(const gfx::ImageSkia& user_wallpaper,
|
| + void ResetSetWallpaperImage(const gfx::ImageSkia& image,
|
| const WallpaperInfo& info);
|
| void ResetLoadWallpaper(const WallpaperInfo& info);
|
| void ResetSetCustomWallpaper(const WallpaperInfo& info,
|
| @@ -159,7 +159,7 @@ class WallpaperManager: public content::NotificationObserver {
|
| ~PendingWallpaper();
|
|
|
| // All Reset*() methods use SetMode() to set object to new state.
|
| - void SetMode(const gfx::ImageSkia& user_wallpaper,
|
| + void SetMode(const gfx::ImageSkia& image,
|
| const WallpaperInfo& info,
|
| const base::FilePath& wallpaper_path,
|
| const bool is_default);
|
| @@ -189,20 +189,45 @@ class WallpaperManager: public content::NotificationObserver {
|
| DISALLOW_COPY_AND_ASSIGN(PendingWallpaper);
|
| };
|
|
|
| - static WallpaperManager* Get();
|
| -
|
| WallpaperManager();
|
| virtual ~WallpaperManager();
|
|
|
| + // Get pointer to singleton WallpaperManager instance, create it if necessary.
|
| + static WallpaperManager* Get();
|
| +
|
| + // Registers wallpaper manager preferences.
|
| + static void RegisterPrefs(PrefRegistrySimple* registry);
|
| +
|
| + // Resizes |image| to a resolution which is nearest to |preferred_width| and
|
| + // |preferred_height| while respecting the |layout| choice. |output_skia| is
|
| + // optional (may be NULL). Returns true on success.
|
| + static bool ResizeImage(const gfx::ImageSkia& image,
|
| + ash::WallpaperLayout layout,
|
| + int preferred_width,
|
| + int preferred_height,
|
| + scoped_refptr<base::RefCountedBytes>* output,
|
| + gfx::ImageSkia* output_skia);
|
| +
|
| + // Resizes |image| to a resolution which is nearest to |preferred_width| and
|
| + // |preferred_height| while respecting the |layout| choice and saves the
|
| + // resized wallpaper to |path|. |output_skia| is optional (may be
|
| + // NULL). Returns true on success.
|
| + static bool ResizeAndSaveWallpaper(const gfx::ImageSkia& image,
|
| + const base::FilePath& path,
|
| + ash::WallpaperLayout layout,
|
| + int preferred_width,
|
| + int preferred_height,
|
| + gfx::ImageSkia* output_skia);
|
| +
|
| + // Returns the appropriate wallpaper resolution for all root windows.
|
| + static WallpaperResolution GetAppropriateResolution();
|
| +
|
| void SetCommandLineForTesting(base::CommandLine* command_line);
|
|
|
| // Indicates imminent shutdown, allowing the WallpaperManager to remove any
|
| // observers it has registered.
|
| void Shutdown();
|
|
|
| - // Registers wallpaper manager preferences.
|
| - static void RegisterPrefs(PrefRegistrySimple* registry);
|
| -
|
| // Adds PowerManagerClient, TimeZoneSettings and CrosSettings observers.
|
| void AddObservers();
|
|
|
| @@ -210,19 +235,12 @@ class WallpaperManager: public content::NotificationObserver {
|
| // wallpaper of logged in user.
|
| void EnsureLoggedInUserWallpaperLoaded();
|
|
|
| - // Clears disposable ONLINE and CUSTOM wallpaper cache. At multi profile
|
| - // world, logged in users' wallpaper cache is not disposable.
|
| - void ClearDisposableWallpaperCache();
|
| -
|
| // Returns custom wallpaper path. Append |sub_dir|, |user_id_hash| and |file|
|
| // to custom wallpaper directory.
|
| base::FilePath GetCustomWallpaperPath(const char* sub_dir,
|
| const std::string& user_id_hash,
|
| const std::string& file) const;
|
|
|
| - // Returns filepath to save original custom wallpaper for the given user.
|
| - base::FilePath GetOriginalWallpaperPathForUser(const std::string& user_id);
|
| -
|
| // Gets wallpaper information of logged in user.
|
| bool GetLoggedInUserWallpaperInfo(WallpaperInfo* info);
|
|
|
| @@ -239,26 +257,6 @@ class WallpaperManager: public content::NotificationObserver {
|
| // Removes all |user_id| related wallpaper info and saved wallpapers.
|
| void RemoveUserWallpaperInfo(const std::string& user_id);
|
|
|
| - // Resizes |wallpaper| to a resolution which is nearest to |preferred_width|
|
| - // and |preferred_height| while maintaining aspect ratio.
|
| - bool ResizeWallpaper(const UserImage& wallpaper,
|
| - ash::WallpaperLayout layout,
|
| - int preferred_width,
|
| - int preferred_height,
|
| - scoped_refptr<base::RefCountedBytes>* output,
|
| - gfx::ImageSkia* output_skia) const;
|
| -
|
| - // Resizes |wallpaper| to a resolution which is nearest to |preferred_width|
|
| - // and |preferred_height| while maintaining aspect ratio. And saves the
|
| - // resized wallpaper to |path|. |result| is optional (may be NULL).
|
| - // Returns true on success.
|
| - bool ResizeAndSaveWallpaper(const UserImage& wallpaper,
|
| - const base::FilePath& path,
|
| - ash::WallpaperLayout layout,
|
| - int preferred_width,
|
| - int preferred_height,
|
| - gfx::ImageSkia* result_out) const;
|
| -
|
| // Saves custom wallpaper to file, post task to generate thumbnail and updates
|
| // local state preferences. If |update_wallpaper| is false, don't change
|
| // wallpaper but only update cache.
|
| @@ -267,7 +265,7 @@ class WallpaperManager: public content::NotificationObserver {
|
| const std::string& file,
|
| ash::WallpaperLayout layout,
|
| User::WallpaperType type,
|
| - const UserImage& wallpaper,
|
| + const gfx::ImageSkia& image,
|
| bool update_wallpaper);
|
|
|
| // Use given files as new default wallpaper.
|
| @@ -287,30 +285,22 @@ class WallpaperManager: public content::NotificationObserver {
|
| // Sets wallpaper to default wallpaper (asynchronously with default delay).
|
| void SetDefaultWallpaperDelayed(const std::string& user_id);
|
|
|
| - // Initialize wallpaper for the specified user to default and saves this
|
| - // settings in local state.
|
| - void InitInitialUserWallpaper(const std::string& user_id,
|
| - bool is_persistent);
|
| -
|
| // Sets selected wallpaper information for |user_id| and saves it to Local
|
| // State if |is_persistent| is true.
|
| void SetUserWallpaperInfo(const std::string& user_id,
|
| const WallpaperInfo& info,
|
| bool is_persistent);
|
|
|
| - // Sets last selected user on user pod row.
|
| - void SetLastSelectedUser(const std::string& last_selected_user);
|
| -
|
| // Sets |user_id|'s wallpaper (asynchronously with zero delay).
|
| void SetUserWallpaperNow(const std::string& user_id);
|
|
|
| // Sets |user_id|'s wallpaper (asynchronously with default delay).
|
| void SetUserWallpaperDelayed(const std::string& user_id);
|
|
|
| - // Sets wallpaper to |wallpaper| (asynchronously with zero delay). If
|
| + // Sets wallpaper to |image| (asynchronously with zero delay). If
|
| // |update_wallpaper| is false, skip change wallpaper but only update cache.
|
| void SetWallpaperFromImageSkia(const std::string& user_id,
|
| - const gfx::ImageSkia& wallpaper,
|
| + const gfx::ImageSkia& image,
|
| ash::WallpaperLayout layout,
|
| bool update_wallpaper);
|
|
|
| @@ -340,9 +330,6 @@ class WallpaperManager: public content::NotificationObserver {
|
| const std::string& user_id,
|
| scoped_ptr<std::string> data);
|
|
|
| - // Returns the appropriate wallpaper resolution for all root windows.
|
| - static WallpaperResolution GetAppropriateResolution();
|
| -
|
| // Enable surprise me wallpaper mode.
|
| void EnableSurpriseMe();
|
|
|
| @@ -361,13 +348,17 @@ class WallpaperManager: public content::NotificationObserver {
|
|
|
| typedef std::map<std::string, gfx::ImageSkia> CustomWallpaperMap;
|
|
|
| - // Set |wallpaper| controlled by policy.
|
| + // Initialize wallpaper for the specified user to default and saves this
|
| + // settings in local state.
|
| + void InitInitialUserWallpaper(const std::string& user_id, bool is_persistent);
|
| +
|
| + // Set wallpaper to |user_image| controlled by policy. (Takes a UserImage
|
| + // because that's the callback interface provided by UserImageLoader.)
|
| void SetPolicyControlledWallpaper(const std::string& user_id,
|
| - const UserImage& wallpaper);
|
| + const UserImage& user_image);
|
|
|
| // Gets encoded wallpaper from cache. Returns true if success.
|
| - bool GetWallpaperFromCache(const std::string& user_id,
|
| - gfx::ImageSkia* wallpaper);
|
| + bool GetWallpaperFromCache(const std::string& user_id, gfx::ImageSkia* image);
|
|
|
| // The number of wallpapers have loaded. For test only.
|
| int loaded_wallpapers() const { return loaded_wallpapers_; }
|
| @@ -387,23 +378,17 @@ class WallpaperManager: public content::NotificationObserver {
|
| // Caches |user_id|'s wallpaper to memory.
|
| void CacheUserWallpaper(const std::string& user_id);
|
|
|
| + // Clears disposable ONLINE and CUSTOM wallpaper cache. At multi profile
|
| + // world, logged in users' wallpaper cache is not disposable.
|
| + void ClearDisposableWallpaperCache();
|
| +
|
| // Clears all obsolete wallpaper prefs from old version wallpaper pickers.
|
| void ClearObsoleteWallpaperPrefs();
|
|
|
| - // Deletes everything else except |path| in the same directory.
|
| - void DeleteAllExcept(const base::FilePath& path);
|
| -
|
| - // Deletes a list of wallpaper files in |file_list|.
|
| - void DeleteWallpaperInList(const std::vector<base::FilePath>& file_list);
|
| -
|
| // Deletes all |user_id| related custom wallpapers and directories.
|
| void DeleteUserWallpapers(const std::string& user_id,
|
| const std::string& path_to_file);
|
|
|
| - // Creates all new custom wallpaper directories for |user_id_hash| if not
|
| - // exist.
|
| - void EnsureCustomWallpaperDirectories(const std::string& user_id_hash);
|
| -
|
| // Gets the CommandLine representing the current process's command line.
|
| base::CommandLine* GetCommandLine();
|
|
|
| @@ -449,21 +434,13 @@ class WallpaperManager: public content::NotificationObserver {
|
| WallpaperInfo* info) const;
|
|
|
| // Sets wallpaper to the decoded wallpaper if |update_wallpaper| is true.
|
| - // Otherwise, cache wallpaper to memory if not logged in.
|
| + // Otherwise, cache wallpaper to memory if not logged in. (Takes a UserImage
|
| + // because that's the callback interface provided by UserImageLoader.)
|
| void OnWallpaperDecoded(const std::string& user_id,
|
| ash::WallpaperLayout layout,
|
| bool update_wallpaper,
|
| MovableOnDestroyCallbackHolder on_finish,
|
| - const UserImage& wallpaper);
|
| -
|
| - // Generates thumbnail of custom wallpaper on wallpaper sequenced worker
|
| - // thread. If |persistent| is true, saves original custom image and resized
|
| - // images to disk.
|
| - void ProcessCustomWallpaper(const std::string& user_id_hash,
|
| - bool persistent,
|
| - const WallpaperInfo& info,
|
| - scoped_ptr<gfx::ImageSkia> image,
|
| - const UserImage::RawImage& raw_image);
|
| + const UserImage& user_image);
|
|
|
| // Record data for User Metrics Analysis.
|
| void RecordUma(User::WallpaperType type, int index) const;
|
| @@ -473,13 +450,7 @@ class WallpaperManager: public content::NotificationObserver {
|
| void SaveCustomWallpaper(const std::string& user_id_hash,
|
| const base::FilePath& path,
|
| ash::WallpaperLayout layout,
|
| - const UserImage& wallpaper);
|
| -
|
| - // Saves wallpaper image raw |data| to |path| (absolute path) in file system.
|
| - // True on success.
|
| - bool SaveWallpaperInternal(const base::FilePath& path,
|
| - const char* data,
|
| - int size) const;
|
| + scoped_ptr<gfx::ImageSkia> image) const;
|
|
|
| // Creates new PendingWallpaper request (or updates currently pending).
|
| void ScheduleSetUserWallpaper(const std::string& user_id, bool delayed);
|
| @@ -500,7 +471,7 @@ class WallpaperManager: public content::NotificationObserver {
|
| // After completed load operation, update average load time.
|
| void SaveLastLoadTime(const base::TimeDelta elapsed);
|
|
|
| - // Notify all registed observers.
|
| + // Notify all registered observers.
|
| void NotifyAnimationFinished();
|
|
|
| // Returns modifiable PendingWallpaper.
|
| @@ -554,7 +525,7 @@ class WallpaperManager: public content::NotificationObserver {
|
| const ash::WallpaperLayout layout,
|
| scoped_ptr<UserImage>* result,
|
| MovableOnDestroyCallbackHolder on_finish,
|
| - const UserImage& wallpaper);
|
| + const UserImage& user_image);
|
|
|
| // Start decoding given default wallpaper.
|
| void StartLoadAndSetDefaultWallpaper(const base::FilePath& path,
|
|
|