| Index: ash/common/wallpaper/wallpaper_controller.cc
|
| diff --git a/ash/common/wallpaper/wallpaper_controller.cc b/ash/common/wallpaper/wallpaper_controller.cc
|
| index 04eb5219509527dde8bdc6eccf17d98713471c56..0b283630fc2ea444fb383f81251fe8048df79cfc 100644
|
| --- a/ash/common/wallpaper/wallpaper_controller.cc
|
| +++ b/ash/common/wallpaper/wallpaper_controller.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "ash/common/wallpaper/wallpaper_controller.h"
|
|
|
| +#include "ash/common/shell_delegate.h"
|
| #include "ash/common/wallpaper/wallpaper_controller_observer.h"
|
| #include "ash/common/wallpaper/wallpaper_delegate.h"
|
| #include "ash/common/wallpaper/wallpaper_view.h"
|
| @@ -16,6 +17,7 @@
|
| #include "base/logging.h"
|
| #include "base/task_runner.h"
|
| #include "components/wallpaper/wallpaper_resizer.h"
|
| +#include "services/service_manager/public/cpp/connector.h"
|
| #include "ui/display/manager/managed_display_info.h"
|
| #include "ui/display/screen.h"
|
| #include "ui/views/widget/widget.h"
|
| @@ -43,6 +45,11 @@ WallpaperController::~WallpaperController() {
|
| WmShell::Get()->RemoveShellObserver(this);
|
| }
|
|
|
| +void WallpaperController::BindRequest(
|
| + mojom::WallpaperControllerRequest request) {
|
| + bindings_.AddBinding(this, std::move(request));
|
| +}
|
| +
|
| gfx::ImageSkia WallpaperController::GetWallpaper() const {
|
| if (current_wallpaper_)
|
| return current_wallpaper_->image();
|
| @@ -182,6 +189,26 @@ bool WallpaperController::WallpaperIsAlreadyLoaded(
|
| current_wallpaper_->original_image_id();
|
| }
|
|
|
| +void WallpaperController::OpenSetWallpaperPage() {
|
| + WmShell* shell = WmShell::Get();
|
| + service_manager::Connector* connector =
|
| + shell->delegate()->GetShellConnector();
|
| + if (!connector || !shell->wallpaper_delegate()->CanOpenSetWallpaperPage())
|
| + return;
|
| +
|
| + mojom::WallpaperManagerPtr wallpaper_manager;
|
| + connector->ConnectToInterface("service:content_browser", &wallpaper_manager);
|
| + wallpaper_manager->Open();
|
| +}
|
| +
|
| +void WallpaperController::SetWallpaper(const SkBitmap& wallpaper,
|
| + wallpaper::WallpaperLayout layout) {
|
| + if (wallpaper.isNull())
|
| + return;
|
| +
|
| + SetWallpaperImage(gfx::ImageSkia::CreateFrom1xBitmap(wallpaper), layout);
|
| +}
|
| +
|
| void WallpaperController::InstallDesktopController(WmWindow* root_window) {
|
| WallpaperWidgetController* component = nullptr;
|
| int container_id = GetWallpaperContainerId(locked_);
|
|
|