OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" | 5 #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "ash/common/ash_constants.h" | 9 #include "ash/common/ash_constants.h" |
10 #include "ash/common/wallpaper/wallpaper_controller.h" | 10 #include "ash/common/wallpaper/wallpaper_controller.h" |
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
197 void SetWallpaper(const gfx::ImageSkia& image, | 197 void SetWallpaper(const gfx::ImageSkia& image, |
198 wallpaper::WallpaperLayout layout) { | 198 wallpaper::WallpaperLayout layout) { |
199 if (chrome::IsRunningInMash()) { | 199 if (chrome::IsRunningInMash()) { |
200 // In mash, connect to the WallpaperController interface via mojo. | 200 // In mash, connect to the WallpaperController interface via mojo. |
201 service_manager::Connector* connector = | 201 service_manager::Connector* connector = |
202 content::ServiceManagerConnection::GetForProcess()->GetConnector(); | 202 content::ServiceManagerConnection::GetForProcess()->GetConnector(); |
203 if (!connector) | 203 if (!connector) |
204 return; | 204 return; |
205 | 205 |
206 ash::mojom::WallpaperControllerPtr wallpaper_controller; | 206 ash::mojom::WallpaperControllerPtr wallpaper_controller; |
207 connector->ConnectToInterface(ash_util::GetAshServiceName(), | 207 connector->BindInterface(ash_util::GetAshServiceName(), |
208 &wallpaper_controller); | 208 &wallpaper_controller); |
209 // TODO(crbug.com/655875): Optimize ash wallpaper transport; avoid sending | 209 // TODO(crbug.com/655875): Optimize ash wallpaper transport; avoid sending |
210 // large bitmaps over Mojo; use shared memory like BitmapUploader, etc. | 210 // large bitmaps over Mojo; use shared memory like BitmapUploader, etc. |
211 wallpaper_controller->SetWallpaper(*image.bitmap(), layout); | 211 wallpaper_controller->SetWallpaper(*image.bitmap(), layout); |
212 } else if (ash::WmShell::HasInstance()) { | 212 } else if (ash::WmShell::HasInstance()) { |
213 // Note: Wallpaper setting is skipped in unit tests without shell instances. | 213 // Note: Wallpaper setting is skipped in unit tests without shell instances. |
214 // In classic ash, interact with the WallpaperController class directly. | 214 // In classic ash, interact with the WallpaperController class directly. |
215 ash::WmShell::Get()->wallpaper_controller()->SetWallpaperImage(image, | 215 ash::WmShell::Get()->wallpaper_controller()->SetWallpaperImage(image, |
216 layout); | 216 layout); |
217 } | 217 } |
218 } | 218 } |
(...skipping 661 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 ->GetSequencedTaskRunnerWithShutdownBehavior( | 880 ->GetSequencedTaskRunnerWithShutdownBehavior( |
881 sequence_token_, base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN); | 881 sequence_token_, base::SequencedWorkerPool::CONTINUE_ON_SHUTDOWN); |
882 | 882 |
883 user_manager::UserManager::Get()->AddSessionStateObserver(this); | 883 user_manager::UserManager::Get()->AddSessionStateObserver(this); |
884 | 884 |
885 content::ServiceManagerConnection* connection = | 885 content::ServiceManagerConnection* connection = |
886 content::ServiceManagerConnection::GetForProcess(); | 886 content::ServiceManagerConnection::GetForProcess(); |
887 if (connection && connection->GetConnector()) { | 887 if (connection && connection->GetConnector()) { |
888 // Connect to the wallpaper controller interface in the ash service. | 888 // Connect to the wallpaper controller interface in the ash service. |
889 ash::mojom::WallpaperControllerPtr wallpaper_controller_ptr; | 889 ash::mojom::WallpaperControllerPtr wallpaper_controller_ptr; |
890 connection->GetConnector()->ConnectToInterface( | 890 connection->GetConnector()->BindInterface(ash_util::GetAshServiceName(), |
891 ash_util::GetAshServiceName(), &wallpaper_controller_ptr); | 891 &wallpaper_controller_ptr); |
892 // Register this object as the wallpaper picker. | 892 // Register this object as the wallpaper picker. |
893 wallpaper_controller_ptr->SetWallpaperPicker( | 893 wallpaper_controller_ptr->SetWallpaperPicker( |
894 binding_.CreateInterfacePtrAndBind()); | 894 binding_.CreateInterfacePtrAndBind()); |
895 } | 895 } |
896 } | 896 } |
897 | 897 |
898 WallpaperManager::PendingWallpaper* WallpaperManager::GetPendingWallpaper( | 898 WallpaperManager::PendingWallpaper* WallpaperManager::GetPendingWallpaper( |
899 const AccountId& account_id, | 899 const AccountId& account_id, |
900 bool delayed) { | 900 bool delayed) { |
901 if (!pending_inactive_) { | 901 if (!pending_inactive_) { |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1406 | 1406 |
1407 UMA_HISTOGRAM_ENUMERATION( | 1407 UMA_HISTOGRAM_ENUMERATION( |
1408 "Ash.Wallpaper.Apps", | 1408 "Ash.Wallpaper.Apps", |
1409 wallpaper_manager_util::ShouldUseAndroidWallpapersApp(profile) | 1409 wallpaper_manager_util::ShouldUseAndroidWallpapersApp(profile) |
1410 ? WALLPAPERS_APP_ANDROID | 1410 ? WALLPAPERS_APP_ANDROID |
1411 : WALLPAPERS_PICKER_APP_CHROMEOS, | 1411 : WALLPAPERS_PICKER_APP_CHROMEOS, |
1412 WALLPAPERS_APPS_NUM); | 1412 WALLPAPERS_APPS_NUM); |
1413 } | 1413 } |
1414 | 1414 |
1415 } // namespace chromeos | 1415 } // namespace chromeos |
OLD | NEW |