Index: ash/common/wallpaper/wallpaper_controller.h |
diff --git a/ash/common/wallpaper/wallpaper_controller.h b/ash/common/wallpaper/wallpaper_controller.h |
index 3a4a47b00830bcc2f9e4598381fd380370654a22..106d3dc7a84ef59f186e1f499950d28ea0bad52d 100644 |
--- a/ash/common/wallpaper/wallpaper_controller.h |
+++ b/ash/common/wallpaper/wallpaper_controller.h |
@@ -10,10 +10,13 @@ |
#include "ash/ash_export.h" |
#include "ash/common/shell_observer.h" |
#include "ash/common/wm_display_observer.h" |
+#include "ash/public/interfaces/wallpaper.mojom.h" |
+#include "base/compiler_specific.h" |
#include "base/memory/ref_counted.h" |
#include "base/observer_list.h" |
#include "base/timer/timer.h" |
#include "components/wallpaper/wallpaper_layout.h" |
+#include "mojo/public/cpp/bindings/binding_set.h" |
#include "ui/gfx/image/image_skia.h" |
namespace base { |
@@ -29,8 +32,10 @@ namespace ash { |
class WallpaperControllerObserver; |
// Controls the desktop background wallpaper. |
-class ASH_EXPORT WallpaperController : public WmDisplayObserver, |
- public ShellObserver { |
+class ASH_EXPORT WallpaperController |
+ : public NON_EXPORTED_BASE(mojom::WallpaperController), |
+ public WmDisplayObserver, |
+ public ShellObserver { |
public: |
enum WallpaperMode { WALLPAPER_NONE, WALLPAPER_IMAGE }; |
@@ -38,6 +43,9 @@ class ASH_EXPORT WallpaperController : public WmDisplayObserver, |
const scoped_refptr<base::TaskRunner>& task_runner); |
~WallpaperController() override; |
+ // Binds the mojom::WallpaperController interface request to this object. |
+ void BindRequest(mojom::WallpaperControllerRequest request); |
+ |
// Add/Remove observers. |
void AddObserver(WallpaperControllerObserver* observer); |
void RemoveObserver(WallpaperControllerObserver* observer); |
@@ -94,6 +102,14 @@ class ASH_EXPORT WallpaperController : public WmDisplayObserver, |
wallpaper_reload_delay_ = value; |
} |
+ // Opens the set wallpaper page in the browser. |
+ void OpenSetWallpaperPage(); |
+ |
+ // mojom::WallpaperController overrides: |
+ void SetWallpaper(const SkBitmap& wallpaper, |
+ wallpaper::WallpaperLayout layout) override; |
+ void GetWallpaper(const GetWallpaperCallback& callback) override; |
+ |
private: |
// Creates a WallpaperWidgetController for |root_window|. |
void InstallDesktopController(WmWindow* root_window); |
@@ -116,6 +132,9 @@ class ASH_EXPORT WallpaperController : public WmDisplayObserver, |
WallpaperMode wallpaper_mode_; |
+ // Bindings for the WallpaperController interface. |
+ mojo::BindingSet<mojom::WallpaperController> bindings_; |
+ |
base::ObserverList<WallpaperControllerObserver> observers_; |
std::unique_ptr<wallpaper::WallpaperResizer> current_wallpaper_; |