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..7cb12287839a101900e0d48158a73c4b7b0ff2c6 100644 |
--- a/ash/common/wallpaper/wallpaper_controller.h |
+++ b/ash/common/wallpaper/wallpaper_controller.h |
@@ -10,10 +10,12 @@ |
#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/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,7 +31,8 @@ namespace ash { |
class WallpaperControllerObserver; |
// Controls the desktop background wallpaper. |
-class ASH_EXPORT WallpaperController : public WmDisplayObserver, |
+class ASH_EXPORT WallpaperController : public mojom::WallpaperController, |
+ public WmDisplayObserver, |
public ShellObserver { |
public: |
enum WallpaperMode { WALLPAPER_NONE, WALLPAPER_IMAGE }; |
@@ -38,6 +41,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 +100,13 @@ 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, |
+ mojom::WallpaperLayout layout) override; |
+ |
private: |
// Creates a WallpaperWidgetController for |root_window|. |
void InstallDesktopController(WmWindow* root_window); |
@@ -116,6 +129,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_; |