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 |
deleted file mode 100644 |
index 4f4697582f75ab94f50cfeb423f713fb47cbcf62..0000000000000000000000000000000000000000 |
--- a/chrome/browser/chromeos/login/wallpaper_manager.h |
+++ /dev/null |
@@ -1,616 +0,0 @@ |
-// Copyright (c) 2013 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#ifndef CHROME_BROWSER_CHROMEOS_LOGIN_WALLPAPER_MANAGER_H_ |
-#define CHROME_BROWSER_CHROMEOS_LOGIN_WALLPAPER_MANAGER_H_ |
- |
-#include <deque> |
-#include <string> |
-#include <vector> |
- |
-#include "ash/desktop_background/desktop_background_controller.h" |
-#include "base/files/file_path.h" |
-#include "base/memory/ref_counted_memory.h" |
-#include "base/memory/scoped_ptr.h" |
-#include "base/memory/weak_ptr.h" |
-#include "base/observer_list.h" |
-#include "base/threading/sequenced_worker_pool.h" |
-#include "base/time/time.h" |
-#include "chrome/browser/chromeos/login/user.h" |
-#include "chrome/browser/chromeos/login/user_image.h" |
-#include "chrome/browser/chromeos/login/user_image_loader.h" |
-#include "chrome/browser/chromeos/settings/cros_settings.h" |
-#include "content/public/browser/notification_observer.h" |
-#include "content/public/browser/notification_registrar.h" |
-#include "third_party/icu/source/i18n/unicode/timezone.h" |
-#include "ui/gfx/image/image_skia.h" |
- |
-class PrefRegistrySimple; |
- |
-namespace base { |
-class CommandLine; |
-class SequencedTaskRunner; |
-} |
- |
-namespace chromeos { |
- |
-struct WallpaperInfo { |
- // Online wallpaper URL or file name of migrated wallpaper. |
- std::string file; |
- ash::WallpaperLayout layout; |
- User::WallpaperType type; |
- base::Time date; |
- bool operator==(const WallpaperInfo& other) { |
- return (file == other.file) && (layout == other.layout) && |
- (type == other.type); |
- } |
-}; |
- |
-class MovableOnDestroyCallback; |
-typedef scoped_ptr<MovableOnDestroyCallback> MovableOnDestroyCallbackHolder; |
- |
-class WallpaperManagerBrowserTest; |
-class UserImage; |
- |
-// Name of wallpaper sequence token. |
-extern const char kWallpaperSequenceTokenName[]; |
- |
-// File path suffices of resized small or large wallpaper. |
-// TODO(bshe): Use the same sub folder system as custom wallpapers use. |
-// crbug.com/174928 |
-extern const char kSmallWallpaperSuffix[]; |
-extern const char kLargeWallpaperSuffix[]; |
- |
-// Directory names of custom wallpapers. |
-extern const char kSmallWallpaperSubDir[]; |
-extern const char kLargeWallpaperSubDir[]; |
-extern const char kOriginalWallpaperSubDir[]; |
-extern const char kThumbnailWallpaperSubDir[]; |
- |
-// The width and height of small/large resolution wallpaper. When screen size is |
-// smaller than |kSmallWallpaperMaxWidth| and |kSmallWallpaperMaxHeight|, the |
-// small resolution wallpaper should be used. Otherwise, use the large |
-// resolution wallpaper. |
-extern const int kSmallWallpaperMaxWidth; |
-extern const int kSmallWallpaperMaxHeight; |
-extern const int kLargeWallpaperMaxWidth; |
-extern const int kLargeWallpaperMaxHeight; |
- |
-// The width and height of wallpaper thumbnails. |
-extern const int kWallpaperThumbnailWidth; |
-extern const int kWallpaperThumbnailHeight; |
- |
-// This singleton class maintains wallpapers for users who have logged into this |
-// Chrome OS device. |
-class WallpaperManager: public content::NotificationObserver { |
- public: |
- enum WallpaperResolution { |
- WALLPAPER_RESOLUTION_LARGE, |
- WALLPAPER_RESOLUTION_SMALL |
- }; |
- |
- // For testing. |
- class TestApi { |
- public: |
- explicit TestApi(WallpaperManager* wallpaper_manager); |
- virtual ~TestApi(); |
- |
- base::FilePath current_wallpaper_path(); |
- |
- bool GetWallpaperFromCache(const std::string& user_id, |
- gfx::ImageSkia* image); |
- |
- void SetWallpaperCache(const std::string& user_id, |
- const gfx::ImageSkia& image); |
- |
- void ClearDisposableWallpaperCache(); |
- |
- private: |
- WallpaperManager* wallpaper_manager_; // not owned |
- |
- DISALLOW_COPY_AND_ASSIGN(TestApi); |
- }; |
- |
- // This should be public to allow access from functions in anonymous |
- // namespace. |
- class CustomizedWallpaperRescaledFiles; |
- |
- class Observer { |
- public: |
- virtual ~Observer() {} |
- virtual void OnWallpaperAnimationFinished(const std::string& user_id) = 0; |
- virtual void OnUpdateWallpaperForTesting() {} |
- virtual void OnPendingListEmptyForTesting() {} |
- }; |
- |
- // This is "wallpaper either scheduled to load, or loading right now". |
- // |
- // While enqueued, it defines moment in the future, when it will be loaded. |
- // Enqueued but not started request might be updated by subsequent load |
- // request. Therefore it's created empty, and updated being enqueued. |
- // |
- // PendingWallpaper is owned by WallpaperManager, but reference to this object |
- // is passed to other threads by PostTask() calls, therefore it is |
- // RefCountedThreadSafe. |
- class PendingWallpaper : public base::RefCountedThreadSafe<PendingWallpaper> { |
- public: |
- // Do LoadWallpaper() - image not found in cache. |
- PendingWallpaper(const base::TimeDelta delay, const std::string& user_id); |
- |
- // There are 4 cases in SetUserWallpaper: |
- // 1) gfx::ImageSkia is found in cache. |
- // - Schedule task to (probably) resize it and install: |
- // call ash::Shell::GetInstance()->desktop_background_controller()-> |
- // SetCustomWallpaper(user_wallpaper, layout); |
- // 2) WallpaperInfo is found in cache |
- // - 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& image, |
- const WallpaperInfo& info); |
- void ResetLoadWallpaper(const WallpaperInfo& info); |
- void ResetSetCustomWallpaper(const WallpaperInfo& info, |
- const base::FilePath& wallpaper_path); |
- void ResetSetDefaultWallpaper(); |
- |
- private: |
- friend class base::RefCountedThreadSafe<PendingWallpaper>; |
- |
- ~PendingWallpaper(); |
- |
- // All Reset*() methods use SetMode() to set object to new state. |
- void SetMode(const gfx::ImageSkia& image, |
- const WallpaperInfo& info, |
- const base::FilePath& wallpaper_path, |
- const bool is_default); |
- |
- // This method is usually triggered by timer to actually load request. |
- void ProcessRequest(); |
- |
- // This method is called by callback, when load request is finished. |
- void OnWallpaperSet(); |
- |
- std::string user_id_; |
- WallpaperInfo info_; |
- gfx::ImageSkia user_wallpaper_; |
- base::FilePath wallpaper_path_; |
- |
- // Load default wallpaper instead of user image. |
- bool default_; |
- |
- // This is "on destroy" callback that will call OnWallpaperSet() when |
- // image will be loaded. |
- MovableOnDestroyCallbackHolder on_finish_; |
- base::OneShotTimer<WallpaperManager::PendingWallpaper> timer; |
- |
- // Load start time to calculate duration. |
- base::Time started_load_at_; |
- |
- DISALLOW_COPY_AND_ASSIGN(PendingWallpaper); |
- }; |
- |
- 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(); |
- |
- // Adds PowerManagerClient, TimeZoneSettings and CrosSettings observers. |
- void AddObservers(); |
- |
- // Loads wallpaper asynchronously if the current wallpaper is not the |
- // wallpaper of logged in user. |
- void EnsureLoggedInUserWallpaperLoaded(); |
- |
- // 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; |
- |
- // Gets wallpaper information of logged in user. |
- bool GetLoggedInUserWallpaperInfo(WallpaperInfo* info); |
- |
- // Initializes wallpaper. If logged in, loads user's wallpaper. If not logged |
- // in, uses a solid color wallpaper. If logged in as a stub user, uses an |
- // empty wallpaper. |
- void InitializeWallpaper(); |
- |
- // NotificationObserver overrides: |
- virtual void Observe(int type, |
- const content::NotificationSource& source, |
- const content::NotificationDetails& details) OVERRIDE; |
- |
- // Removes all |user_id| related wallpaper info and saved wallpapers. |
- void RemoveUserWallpaperInfo(const std::string& user_id); |
- |
- // 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. |
- void 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); |
- |
- // Use given files as new default wallpaper. |
- // Reloads current wallpaper, if old default was loaded. |
- // Current value of default_wallpaper_image_ is destroyed. |
- // Sets default_wallpaper_image_ either to |small_wallpaper_image| or |
- // |large_wallpaper_image| depending on GetAppropriateResolution(). |
- void SetDefaultWallpaperPath( |
- const base::FilePath& customized_default_wallpaper_file_small, |
- scoped_ptr<gfx::ImageSkia> small_wallpaper_image, |
- const base::FilePath& customized_default_wallpaper_file_large, |
- scoped_ptr<gfx::ImageSkia> large_wallpaper_image); |
- |
- // Sets wallpaper to default wallpaper (asynchronously with zero delay). |
- void SetDefaultWallpaperNow(const std::string& user_id); |
- |
- // Sets wallpaper to default wallpaper (asynchronously with default delay). |
- void SetDefaultWallpaperDelayed(const std::string& user_id); |
- |
- // 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 |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 |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& image, |
- ash::WallpaperLayout layout, |
- bool update_wallpaper); |
- |
- // Updates current wallpaper. It may switch the size of wallpaper based on the |
- // current display's resolution. (asynchronously with zero delay) |
- void UpdateWallpaper(bool clear_cache); |
- |
- // Adds given observer to the list. |
- void AddObserver(Observer* observer); |
- |
- // Removes given observer from the list. |
- void RemoveObserver(Observer* observer); |
- |
- // Returns whether a wallpaper policy is enforced for |user_id|. |
- bool IsPolicyControlled(const std::string& user_id) const; |
- |
- // Called when a wallpaper policy has been set for |user_id|. Blocks user |
- // from changing the wallpaper. |
- void OnPolicySet(const std::string& policy, const std::string& user_id); |
- |
- // Called when the wallpaper policy has been cleared for |user_id|. |
- void OnPolicyCleared(const std::string& policy, const std::string& user_id); |
- |
- // Called when the policy-set wallpaper has been fetched. Initiates decoding |
- // of the JPEG |data| with a callback to SetPolicyControlledWallpaper(). |
- void OnPolicyFetched(const std::string& policy, |
- const std::string& user_id, |
- scoped_ptr<std::string> data); |
- |
- // This is called from CustomizationDocument. |
- // |resized_directory| is the directory where resized versions are stored and |
- // must be writable. |
- void SetCustomizedDefaultWallpaper(const GURL& wallpaper_url, |
- const base::FilePath& downloaded_file, |
- const base::FilePath& resized_directory); |
- |
- // Returns queue size. |
- size_t GetPendingListSizeForTesting() const; |
- |
- private: |
- friend class TestApi; |
- friend class WallpaperManagerBrowserTest; |
- friend class WallpaperManagerBrowserTestDefaultWallpaper; |
- friend class WallpaperManagerPolicyTest; |
- |
- typedef std::map<std::string, gfx::ImageSkia> CustomWallpaperMap; |
- |
- // 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& user_image); |
- |
- // Gets encoded wallpaper from cache. Returns true if success. |
- 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_; } |
- |
- // Cache some (or all) logged in users' wallpapers to memory at login |
- // screen. It should not compete with first wallpaper loading when boot |
- // up/initialize login WebUI page. |
- // There are two ways the first wallpaper might be loaded: |
- // 1. Loaded on boot. Login WebUI waits for it. |
- // 2. When flag --disable-boot-animation is passed. Login WebUI is loaded |
- // right away and in 500ms after. Wallpaper started to load. |
- // For case 2, should_cache_wallpaper_ is used to indicate if we need to |
- // cache wallpapers on wallpaper animation finished. The cache operation |
- // should be only executed once. |
- void CacheUsersWallpapers(); |
- |
- // 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 all |user_id| related custom wallpapers and directories. |
- void DeleteUserWallpapers(const std::string& user_id, |
- const std::string& path_to_file); |
- |
- // Gets the CommandLine representing the current process's command line. |
- base::CommandLine* GetCommandLine(); |
- |
- // Initialize wallpaper of registered device after device policy is trusted. |
- // Note that before device is enrolled, it proceeds with untrusted setting. |
- void InitializeRegisteredDeviceWallpaper(); |
- |
- // Loads |user_id|'s wallpaper. When |update_wallpaper| is true, sets |
- // wallpaper to the loaded wallpaper. |
- void LoadWallpaper(const std::string& user_id, |
- const WallpaperInfo& info, |
- bool update_wallpaper, |
- MovableOnDestroyCallbackHolder on_finish); |
- |
- // Moves custom wallpapers from |user_id| directory to |user_id_hash| |
- // directory. |
- void MoveCustomWallpapersOnWorker(const std::string& user_id, |
- const std::string& user_id_hash); |
- |
- // Called when the original custom wallpaper is moved to the new place. |
- // Updates the corresponding user wallpaper info. |
- void MoveCustomWallpapersSuccess(const std::string& user_id, |
- const std::string& user_id_hash); |
- |
- // Moves custom wallpaper to a new place. Email address was used as directory |
- // name in the old system, this is not safe. New directory system uses |
- // user_id_hash instead of user_id. This must be called after user_id_hash is |
- // ready. |
- void MoveLoggedInUserCustomWallpaper(); |
- |
- // Gets |user_id|'s custom wallpaper at |wallpaper_path|. Falls back on |
- // original custom wallpaper. When |update_wallpaper| is true, sets wallpaper |
- // to the loaded wallpaper. Must run on wallpaper sequenced worker thread. |
- void GetCustomWallpaperInternal(const std::string& user_id, |
- const WallpaperInfo& info, |
- const base::FilePath& wallpaper_path, |
- bool update_wallpaper, |
- MovableOnDestroyCallbackHolder on_finish); |
- |
- // Gets wallpaper information of |user_id| from Local State or memory. Returns |
- // false if wallpaper information is not found. |
- bool GetUserWallpaperInfo(const std::string& user_id, |
- WallpaperInfo* info) const; |
- |
- // Sets wallpaper to the decoded wallpaper if |update_wallpaper| is true. |
- // 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& user_image); |
- |
- // Record data for User Metrics Analysis. |
- void RecordUma(User::WallpaperType type, int index) const; |
- |
- // Saves original custom wallpaper to |path| (absolute path) on filesystem |
- // and starts resizing operation of the custom wallpaper if necessary. |
- void SaveCustomWallpaper(const std::string& user_id_hash, |
- const base::FilePath& path, |
- ash::WallpaperLayout layout, |
- scoped_ptr<gfx::ImageSkia> image) const; |
- |
- // Creates new PendingWallpaper request (or updates currently pending). |
- void ScheduleSetUserWallpaper(const std::string& user_id, bool delayed); |
- |
- // Sets wallpaper to default. |
- void DoSetDefaultWallpaper( |
- const std::string& user_id, |
- MovableOnDestroyCallbackHolder on_finish); |
- |
- // Starts to load wallpaper at |wallpaper_path|. If |wallpaper_path| is the |
- // same as |current_wallpaper_path_|, do nothing. Must be called on UI thread. |
- void StartLoad(const std::string& user_id, |
- const WallpaperInfo& info, |
- bool update_wallpaper, |
- const base::FilePath& wallpaper_path, |
- MovableOnDestroyCallbackHolder on_finish); |
- |
- // After completed load operation, update average load time. |
- void SaveLastLoadTime(const base::TimeDelta elapsed); |
- |
- // Notify all registered observers. |
- void NotifyAnimationFinished(); |
- |
- // Returns modifiable PendingWallpaper. |
- // Returns pending_inactive_ or creates new PendingWallpaper if necessary. |
- PendingWallpaper* GetPendingWallpaper(const std::string& user_id, |
- bool delayed); |
- |
- // This is called by PendingWallpaper when load is finished. |
- void RemovePendingWallpaperFromList(PendingWallpaper* pending); |
- |
- // Calculate delay for next wallpaper load. |
- // It is usually average wallpaper load time. |
- // If last wallpaper load happened long ago, timeout should be reduced by |
- // the time passed after last wallpaper load. So usual user experience results |
- // in zero delay. |
- base::TimeDelta GetWallpaperLoadDelay() const; |
- |
- // This is called after we check that supplied default wallpaper files exist. |
- void SetCustomizedDefaultWallpaperAfterCheck( |
- const GURL& wallpaper_url, |
- const base::FilePath& downloaded_file, |
- scoped_ptr<CustomizedWallpaperRescaledFiles> rescaled_files); |
- |
- // Starts rescaling of customized wallpaper. |
- void OnCustomizedDefaultWallpaperDecoded( |
- const GURL& wallpaper_url, |
- scoped_ptr<CustomizedWallpaperRescaledFiles> rescaled_files, |
- const UserImage& user_image); |
- |
- // Resize and save customized default wallpaper. |
- void ResizeCustomizedDefaultWallpaper( |
- scoped_ptr<gfx::ImageSkia> image, |
- const UserImage::RawImage& raw_image, |
- const CustomizedWallpaperRescaledFiles* rescaled_files, |
- bool* success, |
- gfx::ImageSkia* small_wallpaper_image, |
- gfx::ImageSkia* large_wallpaper_image); |
- |
- // Check the result of ResizeCustomizedDefaultWallpaper and finally |
- // apply Customized Default Wallpaper. |
- void OnCustomizedDefaultWallpaperResized( |
- const GURL& wallpaper_url, |
- scoped_ptr<CustomizedWallpaperRescaledFiles> rescaled_files, |
- scoped_ptr<bool> success, |
- scoped_ptr<gfx::ImageSkia> small_wallpaper_image, |
- scoped_ptr<gfx::ImageSkia> large_wallpaper_image); |
- |
- // Init |*default_*_wallpaper_file_| from given command line and |
- // clear |default_wallpaper_image_|. |
- void SetDefaultWallpaperPathsFromCommandLine(base::CommandLine* command_line); |
- |
- // Sets wallpaper to decoded default. |
- void OnDefaultWallpaperDecoded(const base::FilePath& path, |
- const ash::WallpaperLayout layout, |
- scoped_ptr<UserImage>* result, |
- MovableOnDestroyCallbackHolder on_finish, |
- const UserImage& user_image); |
- |
- // Start decoding given default wallpaper. |
- void StartLoadAndSetDefaultWallpaper(const base::FilePath& path, |
- const ash::WallpaperLayout layout, |
- MovableOnDestroyCallbackHolder on_finish, |
- scoped_ptr<UserImage>* result_out); |
- |
- // Returns wallpaper subdirectory name for current resolution. |
- const char* GetCustomWallpaperSubdirForCurrentResolution(); |
- |
- // Init default_wallpaper_image_ with 1x1 image of default color. |
- void CreateSolidDefaultWallpaper(); |
- |
- // The number of loaded wallpapers. |
- int loaded_wallpapers_; |
- |
- // Sequence token associated with wallpaper operations. |
- base::SequencedWorkerPool::SequenceToken sequence_token_; |
- |
- // Wallpaper sequenced task runner. |
- scoped_refptr<base::SequencedTaskRunner> task_runner_; |
- |
- // The file path of current loaded/loading custom/online wallpaper. |
- base::FilePath current_wallpaper_path_; |
- |
- // Loads user wallpaper from its file. |
- scoped_refptr<UserImageLoader> wallpaper_loader_; |
- |
- // Logged-in user wallpaper information. |
- WallpaperInfo current_user_wallpaper_info_; |
- |
- // If non-NULL, used in place of the real command line. |
- base::CommandLine* command_line_for_testing_; |
- |
- // Caches wallpapers of users. Accessed only on UI thread. |
- CustomWallpaperMap wallpaper_cache_; |
- |
- // The last selected user on user pod row. |
- std::string last_selected_user_; |
- |
- bool should_cache_wallpaper_; |
- |
- scoped_ptr<CrosSettings::ObserverSubscription> |
- show_user_name_on_signin_subscription_; |
- |
- base::WeakPtrFactory<WallpaperManager> weak_factory_; |
- |
- content::NotificationRegistrar registrar_; |
- |
- ObserverList<Observer> observers_; |
- |
- // These members are for the scheduler: |
- |
- // When last load attempt finished. |
- base::Time last_load_finished_at_; |
- |
- // last N wallpaper loads times. |
- std::deque<base::TimeDelta> last_load_times_; |
- |
- // Pointer to last inactive (waiting) entry of 'loading_' list. |
- // NULL when there is no inactive request. |
- PendingWallpaper* pending_inactive_; |
- |
- // Owns PendingWallpaper. |
- // PendingWallpaper deletes itself from here on load complete. |
- // All pending will be finally deleted on destroy. |
- typedef std::vector<scoped_refptr<PendingWallpaper> > PendingList; |
- PendingList loading_; |
- |
- base::FilePath default_small_wallpaper_file_; |
- base::FilePath default_large_wallpaper_file_; |
- |
- base::FilePath guest_small_wallpaper_file_; |
- base::FilePath guest_large_wallpaper_file_; |
- |
- // Current decoded default image is stored in cache. |
- scoped_ptr<UserImage> default_wallpaper_image_; |
- |
- DISALLOW_COPY_AND_ASSIGN(WallpaperManager); |
-}; |
- |
-} // namespace chromeos |
- |
-#endif // CHROME_BROWSER_CHROMEOS_LOGIN_WALLPAPER_MANAGER_H_ |