blob: fc1f2b8ef027676821258b5f84f1a7149096439a [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"
11#include "ash/media_controller.h"
12#include "ash/new_window_controller.h"
13#include "ash/session/session_controller.h"
14#include "ash/shelf/shelf_controller.h"
15#include "ash/shell.h"
16#include "ash/shell_delegate.h"
17#include "ash/shutdown_controller.h"
18#include "ash/system/locale/locale_notification_controller.h"
19#include "ash/system/network/vpn_list.h"
20#include "ash/system/tray/system_tray_controller.h"
21#include "ash/wallpaper/wallpaper_controller.h"
22#include "ash/wm/maximize_mode/maximize_mode_controller.h"
23#include "base/bind.h"
24#include "services/service_manager/public/cpp/binder_registry.h"
25#include "ui/app_list/presenter/app_list.h"
26
27namespace ash {
28
29namespace {
30
31void BindAcceleratorControllerRequestOnMainThread(
32 mojom::AcceleratorControllerRequest request) {
33 Shell::Get()->accelerator_controller()->BindRequest(std::move(request));
34}
35
36void BindAppListRequestOnMainThread(app_list::mojom::AppListRequest request) {
37 Shell::Get()->app_list()->BindRequest(std::move(request));
38}
39
40void BindCastConfigOnMainThread(mojom::CastConfigRequest request) {
41 Shell::Get()->cast_config()->BindRequest(std::move(request));
42}
43
44void BindLocaleNotificationControllerOnMainThread(
45 mojom::LocaleNotificationControllerRequest request) {
46 Shell::Get()->locale_notification_controller()->BindRequest(
47 std::move(request));
48}
49
50void BindMediaControllerRequestOnMainThread(
51 mojom::MediaControllerRequest request) {
52 Shell::Get()->media_controller()->BindRequest(std::move(request));
53}
54
55void BindNewWindowControllerRequestOnMainThread(
56 mojom::NewWindowControllerRequest request) {
57 Shell::Get()->new_window_controller()->BindRequest(std::move(request));
58}
59
60void BindSessionControllerRequestOnMainThread(
61 mojom::SessionControllerRequest request) {
62 Shell::Get()->session_controller()->BindRequest(std::move(request));
63}
64
65void BindShelfRequestOnMainThread(mojom::ShelfControllerRequest request) {
66 Shell::Get()->shelf_controller()->BindRequest(std::move(request));
67}
68
69void BindShutdownControllerRequestOnMainThread(
70 mojom::ShutdownControllerRequest request) {
71 Shell::Get()->shutdown_controller()->BindRequest(std::move(request));
72}
73
74void BindSystemTrayRequestOnMainThread(mojom::SystemTrayRequest request) {
75 Shell::Get()->system_tray_controller()->BindRequest(std::move(request));
76}
77
78void BindTouchViewRequestOnMainThread(mojom::TouchViewManagerRequest request) {
79 Shell::Get()->maximize_mode_controller()->BindRequest(std::move(request));
80}
81
82void BindVpnListRequestOnMainThread(mojom::VpnListRequest request) {
83 Shell::Get()->vpn_list()->BindRequest(std::move(request));
84}
85
86void BindWallpaperRequestOnMainThread(
87 mojom::WallpaperControllerRequest request) {
88 Shell::Get()->wallpaper_controller()->BindRequest(std::move(request));
89}
90
91} // namespace
92
93namespace mojo_interface_factory {
94
95void RegisterInterfaces(
96 service_manager::BinderRegistry* registry,
97 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner) {
98 registry->AddInterface(
99 base::Bind(&BindAcceleratorControllerRequestOnMainThread),
100 main_thread_task_runner);
101 registry->AddInterface(base::Bind(&BindAppListRequestOnMainThread),
102 main_thread_task_runner);
103 registry->AddInterface(base::Bind(&BindCastConfigOnMainThread),
104 main_thread_task_runner);
105 registry->AddInterface(
106 base::Bind(&BindLocaleNotificationControllerOnMainThread),
107 main_thread_task_runner);
108 registry->AddInterface(base::Bind(&BindMediaControllerRequestOnMainThread),
109 main_thread_task_runner);
110 registry->AddInterface(
111 base::Bind(&BindNewWindowControllerRequestOnMainThread),
112 main_thread_task_runner);
113 registry->AddInterface(base::Bind(&BindSessionControllerRequestOnMainThread),
114 main_thread_task_runner);
115 registry->AddInterface(base::Bind(&BindShelfRequestOnMainThread),
116 main_thread_task_runner);
117 registry->AddInterface(base::Bind(&BindShutdownControllerRequestOnMainThread),
118 main_thread_task_runner);
119 registry->AddInterface(base::Bind(&BindSystemTrayRequestOnMainThread),
120 main_thread_task_runner);
121 registry->AddInterface(base::Bind(&BindTouchViewRequestOnMainThread),
122 main_thread_task_runner);
123 registry->AddInterface(base::Bind(&BindVpnListRequestOnMainThread),
124 main_thread_task_runner);
125 registry->AddInterface(base::Bind(&BindWallpaperRequestOnMainThread),
126 main_thread_task_runner);
127}
128
129} // namespace mojo_interface_factory
130
131} // namespace ash