blob: f9f5c0d08993ad4da5068710a2817493e358e58b [file] [log] [blame]
James Cookb0bf8e82017-04-09 17:01:441// Copyright 2016 The Chromium Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style license that can be
3// found in the LICENSE file.
4
5#include "ash/mojo_interface_factory.h"
6
7#include <utility>
8
9#include "ash/accelerators/accelerator_controller.h"
10#include "ash/cast_config_controller.h"
Scott Violetd64dac12017-06-02 21:50:0811#include "ash/display/ash_display_controller.h"
James Cookfdee0242017-06-20 14:14:0012#include "ash/ime/ime_controller.h"
xiaoyinh2bbdd102017-05-18 23:29:4213#include "ash/login/lock_screen_controller.h"
James Cookb0bf8e82017-04-09 17:01:4414#include "ash/media_controller.h"
15#include "ash/new_window_controller.h"
Evan Stade48768f42017-10-10 05:23:3016#include "ash/public/cpp/ash_switches.h"
James Cookb0bf8e82017-04-09 17:01:4417#include "ash/session/session_controller.h"
18#include "ash/shelf/shelf_controller.h"
19#include "ash/shell.h"
20#include "ash/shell_delegate.h"
21#include "ash/shutdown_controller.h"
22#include "ash/system/locale/locale_notification_controller.h"
23#include "ash/system/network/vpn_list.h"
afakhryee3e2fa2017-06-15 17:45:4124#include "ash/system/night_light/night_light_controller.h"
James Cookb0bf8e82017-04-09 17:01:4425#include "ash/system/tray/system_tray_controller.h"
tbarzicc78da1ff92017-05-08 20:46:1526#include "ash/tray_action/tray_action.h"
James Cookb0bf8e82017-04-09 17:01:4427#include "ash/wallpaper/wallpaper_controller.h"
Mitsuru Oshima0e9b7a62017-07-19 18:23:0328#include "ash/wm/tablet_mode/tablet_mode_controller.h"
James Cookb0bf8e82017-04-09 17:01:4429#include "base/bind.h"
Gabriel Charette5ff87ce2017-05-16 18:03:4530#include "base/single_thread_task_runner.h"
James Cookb0bf8e82017-04-09 17:01:4431#include "ui/app_list/presenter/app_list.h"
32
33namespace ash {
34
35namespace {
36
37void BindAcceleratorControllerRequestOnMainThread(
38 mojom::AcceleratorControllerRequest request) {
39 Shell::Get()->accelerator_controller()->BindRequest(std::move(request));
40}
41
bena5c972c2017-05-04 01:38:4342void BindAppListRequestOnMainThread(
bena5c972c2017-05-04 01:38:4343 app_list::mojom::AppListRequest request) {
James Cookb0bf8e82017-04-09 17:01:4444 Shell::Get()->app_list()->BindRequest(std::move(request));
45}
46
Scott Violetd64dac12017-06-02 21:50:0847void BindAshDisplayControllerRequestOnMainThread(
Scott Violetd64dac12017-06-02 21:50:0848 mojom::AshDisplayControllerRequest request) {
49 Shell::Get()->ash_display_controller()->BindRequest(std::move(request));
50}
51
Ben Goodger21ada1e2017-07-19 14:53:0152void BindCastConfigOnMainThread(mojom::CastConfigRequest request) {
James Cookb0bf8e82017-04-09 17:01:4453 Shell::Get()->cast_config()->BindRequest(std::move(request));
54}
55
Ben Goodger21ada1e2017-07-19 14:53:0156void BindImeControllerRequestOnMainThread(mojom::ImeControllerRequest request) {
James Cookfdee0242017-06-20 14:14:0057 Shell::Get()->ime_controller()->BindRequest(std::move(request));
58}
59
James Cookb0bf8e82017-04-09 17:01:4460void BindLocaleNotificationControllerOnMainThread(
61 mojom::LocaleNotificationControllerRequest request) {
62 Shell::Get()->locale_notification_controller()->BindRequest(
63 std::move(request));
64}
65
Ben Goodger21ada1e2017-07-19 14:53:0166void BindLockScreenRequestOnMainThread(mojom::LockScreenRequest request) {
xiaoyinh2bbdd102017-05-18 23:29:4267 Shell::Get()->lock_screen_controller()->BindRequest(std::move(request));
68}
69
James Cookb0bf8e82017-04-09 17:01:4470void BindMediaControllerRequestOnMainThread(
71 mojom::MediaControllerRequest request) {
72 Shell::Get()->media_controller()->BindRequest(std::move(request));
73}
74
75void BindNewWindowControllerRequestOnMainThread(
76 mojom::NewWindowControllerRequest request) {
77 Shell::Get()->new_window_controller()->BindRequest(std::move(request));
78}
79
afakhryee3e2fa2017-06-15 17:45:4180void BindNightLightControllerRequestOnMainThread(
afakhryee3e2fa2017-06-15 17:45:4181 mojom::NightLightControllerRequest request) {
82 Shell::Get()->night_light_controller()->BindRequest(std::move(request));
83}
84
James Cookb0bf8e82017-04-09 17:01:4485void BindSessionControllerRequestOnMainThread(
86 mojom::SessionControllerRequest request) {
87 Shell::Get()->session_controller()->BindRequest(std::move(request));
88}
89
Ben Goodger21ada1e2017-07-19 14:53:0190void BindShelfRequestOnMainThread(mojom::ShelfControllerRequest request) {
James Cookb0bf8e82017-04-09 17:01:4491 Shell::Get()->shelf_controller()->BindRequest(std::move(request));
92}
93
94void BindShutdownControllerRequestOnMainThread(
95 mojom::ShutdownControllerRequest request) {
96 Shell::Get()->shutdown_controller()->BindRequest(std::move(request));
97}
98
Ben Goodger21ada1e2017-07-19 14:53:0199void BindSystemTrayRequestOnMainThread(mojom::SystemTrayRequest request) {
James Cookb0bf8e82017-04-09 17:01:44100 Shell::Get()->system_tray_controller()->BindRequest(std::move(request));
101}
102
Mitsuru Oshima63d3f2a2017-08-23 00:12:11103void BindTabletModeRequestOnMainThread(
James Cookbf962f32017-09-21 19:48:44104 mojom::TabletModeControllerRequest request) {
Mitsuru Oshima0e9b7a62017-07-19 18:23:03105 Shell::Get()->tablet_mode_controller()->BindRequest(std::move(request));
James Cookb0bf8e82017-04-09 17:01:44106}
107
Ben Goodger21ada1e2017-07-19 14:53:01108void BindTrayActionRequestOnMainThread(mojom::TrayActionRequest request) {
tbarzicc78da1ff92017-05-08 20:46:15109 Shell::Get()->tray_action()->BindRequest(std::move(request));
110}
111
Ben Goodger21ada1e2017-07-19 14:53:01112void BindVpnListRequestOnMainThread(mojom::VpnListRequest request) {
James Cookb0bf8e82017-04-09 17:01:44113 Shell::Get()->vpn_list()->BindRequest(std::move(request));
114}
115
116void BindWallpaperRequestOnMainThread(
James Cookb0bf8e82017-04-09 17:01:44117 mojom::WallpaperControllerRequest request) {
118 Shell::Get()->wallpaper_controller()->BindRequest(std::move(request));
119}
120
121} // namespace
122
123namespace mojo_interface_factory {
124
125void RegisterInterfaces(
126 service_manager::BinderRegistry* registry,
127 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner) {
128 registry->AddInterface(
129 base::Bind(&BindAcceleratorControllerRequestOnMainThread),
130 main_thread_task_runner);
131 registry->AddInterface(base::Bind(&BindAppListRequestOnMainThread),
132 main_thread_task_runner);
James Cookfdee0242017-06-20 14:14:00133 registry->AddInterface(base::Bind(&BindImeControllerRequestOnMainThread),
134 main_thread_task_runner);
Scott Violetd64dac12017-06-02 21:50:08135 registry->AddInterface(
136 base::Bind(&BindAshDisplayControllerRequestOnMainThread),
137 main_thread_task_runner);
James Cookb0bf8e82017-04-09 17:01:44138 registry->AddInterface(base::Bind(&BindCastConfigOnMainThread),
139 main_thread_task_runner);
140 registry->AddInterface(
141 base::Bind(&BindLocaleNotificationControllerOnMainThread),
142 main_thread_task_runner);
xiaoyinh2bbdd102017-05-18 23:29:42143 registry->AddInterface(base::Bind(&BindLockScreenRequestOnMainThread),
144 main_thread_task_runner);
James Cookb0bf8e82017-04-09 17:01:44145 registry->AddInterface(base::Bind(&BindMediaControllerRequestOnMainThread),
146 main_thread_task_runner);
147 registry->AddInterface(
148 base::Bind(&BindNewWindowControllerRequestOnMainThread),
149 main_thread_task_runner);
Evan Stade48768f42017-10-10 05:23:30150 if (switches::IsNightLightEnabled()) {
afakhryee3e2fa2017-06-15 17:45:41151 registry->AddInterface(
152 base::Bind(&BindNightLightControllerRequestOnMainThread),
153 main_thread_task_runner);
154 }
James Cookb0bf8e82017-04-09 17:01:44155 registry->AddInterface(base::Bind(&BindSessionControllerRequestOnMainThread),
156 main_thread_task_runner);
157 registry->AddInterface(base::Bind(&BindShelfRequestOnMainThread),
158 main_thread_task_runner);
159 registry->AddInterface(base::Bind(&BindShutdownControllerRequestOnMainThread),
160 main_thread_task_runner);
161 registry->AddInterface(base::Bind(&BindSystemTrayRequestOnMainThread),
162 main_thread_task_runner);
Mitsuru Oshima63d3f2a2017-08-23 00:12:11163 registry->AddInterface(base::Bind(&BindTabletModeRequestOnMainThread),
James Cookb0bf8e82017-04-09 17:01:44164 main_thread_task_runner);
tbarzicc78da1ff92017-05-08 20:46:15165 registry->AddInterface(base::Bind(&BindTrayActionRequestOnMainThread),
166 main_thread_task_runner);
James Cookb0bf8e82017-04-09 17:01:44167 registry->AddInterface(base::Bind(&BindVpnListRequestOnMainThread),
168 main_thread_task_runner);
169 registry->AddInterface(base::Bind(&BindWallpaperRequestOnMainThread),
170 main_thread_task_runner);
171}
172
173} // namespace mojo_interface_factory
174
175} // namespace ash