Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(734)

Unified Diff: ash/common/wallpaper/wallpaper_controller.h

Issue 2413503002: Cleanup mojo Wallpaper interfaces for mash. (Closed)
Patch Set: Sync and rebase; do *not* use mojo in classic ash. Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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_;

Powered by Google App Engine
This is Rietveld 408576698