Chromium Code Reviews| Index: chrome/browser/chromeos/chrome_interface_factory.cc |
| diff --git a/chrome/browser/chromeos/chrome_interface_factory.cc b/chrome/browser/chromeos/chrome_interface_factory.cc |
| index 1c9a68da3932298b3efc3a96dd0eddebd28d1934..38a0e7ef821c59502a5789c407e74caf941b1934 100644 |
| --- a/chrome/browser/chromeos/chrome_interface_factory.cc |
| +++ b/chrome/browser/chromeos/chrome_interface_factory.cc |
| @@ -16,6 +16,7 @@ |
| #include "base/threading/thread_checker.h" |
| #include "base/threading/thread_task_runner_handle.h" |
| #include "chrome/browser/chromeos/login/users/wallpaper/wallpaper_manager.h" |
| +#include "chrome/browser/prefs/preferences_connection_manager.h" |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/profiles/profile_manager.h" |
| #include "chrome/browser/ui/ash/app_list/app_list_presenter_service.h" |
| @@ -29,6 +30,7 @@ |
| #include "content/public/common/service_manager_connection.h" |
| #include "mash/public/interfaces/launchable.mojom.h" |
| #include "mojo/public/cpp/bindings/binding_set.h" |
| +#include "services/preferences/public/interfaces/preferences.mojom.h" |
| #include "services/service_manager/public/cpp/connection.h" |
| #include "services/service_manager/public/cpp/interface_registry.h" |
| #include "ui/app_list/presenter/app_list_presenter.mojom.h" |
| @@ -125,6 +127,13 @@ class FactoryImpl { |
| std::move(request)); |
| } |
| + void BindRequest(prefs::mojom::PreferencesManagerRequest request) { |
| + if (!preferences_connection_manager_) |
| + preferences_connection_manager_ = |
| + base::MakeUnique<chrome::PreferencesConnectionManager>(); |
| + preferences_connection_manager_->ProcessRequest(std::move(request)); |
| + } |
| + |
| void BindRequest(ash::mojom::SystemTrayClientRequest request) { |
| system_tray_client_bindings_.AddBinding(SystemTrayClient::Get(), |
| std::move(request)); |
| @@ -155,6 +164,8 @@ class FactoryImpl { |
| std::unique_ptr<ChromeNewWindowClient> new_window_client_; |
| mojo::BindingSet<ash::mojom::NewWindowClient> new_window_client_bindings_; |
| mojo::BindingSet<ash::mojom::SystemTrayClient> system_tray_client_bindings_; |
| + std::unique_ptr<chrome::PreferencesConnectionManager> |
| + preferences_connection_manager_; |
| std::unique_ptr<VolumeController> volume_controller_; |
| std::unique_ptr<AppListPresenterService> app_list_presenter_service_; |
| mojo::BindingSet<app_list::mojom::AppListPresenter> |
| @@ -186,6 +197,8 @@ bool ChromeInterfaceFactory::OnConnect( |
| main_thread_task_runner_); |
| FactoryImpl::AddFactory<ash::mojom::NewWindowClient>( |
| registry, main_thread_task_runner_); |
| + FactoryImpl::AddFactory<prefs::mojom::PreferencesManager>( |
| + registry, main_thread_task_runner_); |
|
sadrul
2016/12/06 18:35:55
Oh btw: see if moving this to the IO thread would
jonross
2016/12/06 21:09:32
Investigating.
jonross
2016/12/07 16:08:53
The Prefs code saves jumps to the IO thread for th
sadrul
2016/12/07 16:59:57
Sounds good. Thanks for investigating.
|
| FactoryImpl::AddFactory<ash::mojom::SystemTrayClient>( |
| registry, main_thread_task_runner_); |
| FactoryImpl::AddFactory<ash::mojom::VolumeController>( |