blob: 9646f3b015ebee56e680f7be3fec6635b758f311 [file] [log] [blame]
James Cook625eff02017-10-11 20:44:311// Copyright 2017 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_test_interface_factory.h"
6
7#include <utility>
8
Scott Violet3c554ae2017-12-13 02:25:419#include "ash/metrics/time_to_first_present_recorder_test_api.h"
Tetsui Ohkubo4f18619a2018-06-06 01:19:3110#include "ash/public/cpp/ash_features.h"
James Cook8f097212017-11-09 00:18:5411#include "ash/public/interfaces/shelf_test_api.mojom.h"
James Cook00848f02018-01-05 18:02:5712#include "ash/public/interfaces/shell_test_api.mojom.h"
Katie D9824f8232018-05-08 00:22:3313#include "ash/public/interfaces/status_area_widget_test_api.mojom.h"
James Cook625eff02017-10-11 20:44:3114#include "ash/public/interfaces/system_tray_test_api.mojom.h"
Scott Violet3c554ae2017-12-13 02:25:4115#include "ash/public/interfaces/time_to_first_present_recorder_test_api.mojom.h"
James Cook8f097212017-11-09 00:18:5416#include "ash/shelf/shelf_test_api.h"
James Cook00848f02018-01-05 18:02:5717#include "ash/shell_test_api.h"
Katie D9824f8232018-05-08 00:22:3318#include "ash/system/status_area_widget_test_api.h"
James Cook625eff02017-10-11 20:44:3119#include "ash/system/tray/system_tray_test_api.h"
Tetsui Ohkubo4f18619a2018-06-06 01:19:3120#include "ash/system/unified/unified_system_tray_test_api.h"
James Cook625eff02017-10-11 20:44:3121#include "base/bind.h"
22#include "base/single_thread_task_runner.h"
23
24namespace ash {
25namespace mojo_test_interface_factory {
26namespace {
27
James Cook8f097212017-11-09 00:18:5428// These functions aren't strictly necessary, but exist to make threading and
29// arguments clearer.
Scott Violet3c554ae2017-12-13 02:25:4130
James Cook8f097212017-11-09 00:18:5431void BindShelfTestApiOnMainThread(mojom::ShelfTestApiRequest request) {
32 ShelfTestApi::BindRequest(std::move(request));
33}
34
James Cook00848f02018-01-05 18:02:5735void BindShellTestApiOnMainThread(mojom::ShellTestApiRequest request) {
36 ShellTestApi::BindRequest(std::move(request));
37}
38
Katie D9824f8232018-05-08 00:22:3339void BindStatusAreaWidgetTestApiOnMainThread(
40 mojom::StatusAreaWidgetTestApiRequest request) {
41 StatusAreaWidgetTestApi::BindRequest(std::move(request));
42}
43
James Cook625eff02017-10-11 20:44:3144void BindSystemTrayTestApiOnMainThread(
45 mojom::SystemTrayTestApiRequest request) {
Tetsui Ohkubo4f18619a2018-06-06 01:19:3146 if (features::IsSystemTrayUnifiedEnabled())
47 UnifiedSystemTrayTestApi::BindRequest(std::move(request));
48 else
49 SystemTrayTestApi::BindRequest(std::move(request));
James Cook625eff02017-10-11 20:44:3150}
51
Scott Violet3c554ae2017-12-13 02:25:4152void BindTimeToFirstPresentRecorderTestApiOnMainThread(
53 mojom::TimeToFirstPresentRecorderTestApiRequest request) {
54 TimeToFirstPresentRecorderTestApi::BindRequest(std::move(request));
55}
56
James Cook625eff02017-10-11 20:44:3157} // namespace
58
59void RegisterInterfaces(
60 service_manager::BinderRegistry* registry,
61 scoped_refptr<base::SingleThreadTaskRunner> main_thread_task_runner) {
James Cook8f097212017-11-09 00:18:5462 registry->AddInterface(base::Bind(&BindShelfTestApiOnMainThread),
63 main_thread_task_runner);
James Cook00848f02018-01-05 18:02:5764 registry->AddInterface(base::Bind(&BindShellTestApiOnMainThread),
65 main_thread_task_runner);
Katie D9824f8232018-05-08 00:22:3366 registry->AddInterface(base::Bind(&BindStatusAreaWidgetTestApiOnMainThread),
67 main_thread_task_runner);
James Cook625eff02017-10-11 20:44:3168 registry->AddInterface(base::Bind(&BindSystemTrayTestApiOnMainThread),
69 main_thread_task_runner);
Scott Violet3c554ae2017-12-13 02:25:4170 registry->AddInterface(
71 base::Bind(&BindTimeToFirstPresentRecorderTestApiOnMainThread),
72 main_thread_task_runner);
James Cook625eff02017-10-11 20:44:3173}
74
James Cook625eff02017-10-11 20:44:3175} // namespace mojo_test_interface_factory
76} // namespace ash