OLD | NEW |
1 // Copyright 2016 The Chromium Authors. All rights reserved. | 1 // Copyright 2016 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 "services/device/device_service.h" | 5 #include "services/device/device_service.h" |
6 | 6 |
7 #include <utility> | 7 #include <utility> |
8 | 8 |
9 #include "base/bind.h" | 9 #include "base/bind.h" |
10 #include "base/feature_list.h" | 10 #include "base/feature_list.h" |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
80 #endif | 80 #endif |
81 | 81 |
82 DeviceService::~DeviceService() { | 82 DeviceService::~DeviceService() { |
83 #if !defined(OS_ANDROID) | 83 #if !defined(OS_ANDROID) |
84 device::BatteryStatusService::GetInstance()->Shutdown(); | 84 device::BatteryStatusService::GetInstance()->Shutdown(); |
85 #endif | 85 #endif |
86 } | 86 } |
87 | 87 |
88 void DeviceService::OnStart() { | 88 void DeviceService::OnStart() { |
89 registry_.AddInterface<mojom::Fingerprint>(this); | 89 registry_.AddInterface<mojom::Fingerprint>(this); |
90 registry_.AddInterface<mojom::LightSensor>(this); | |
91 registry_.AddInterface<mojom::MotionSensor>(this); | 90 registry_.AddInterface<mojom::MotionSensor>(this); |
92 registry_.AddInterface<mojom::OrientationSensor>(this); | 91 registry_.AddInterface<mojom::OrientationSensor>(this); |
93 registry_.AddInterface<mojom::OrientationAbsoluteSensor>(this); | 92 registry_.AddInterface<mojom::OrientationAbsoluteSensor>(this); |
94 registry_.AddInterface<mojom::PowerMonitor>(this); | 93 registry_.AddInterface<mojom::PowerMonitor>(this); |
95 registry_.AddInterface<mojom::ScreenOrientationListener>(this); | 94 registry_.AddInterface<mojom::ScreenOrientationListener>(this); |
96 if (base::FeatureList::IsEnabled(features::kGenericSensor)) { | 95 if (base::FeatureList::IsEnabled(features::kGenericSensor)) { |
97 registry_.AddInterface<mojom::SensorProvider>(this); | 96 registry_.AddInterface<mojom::SensorProvider>(this); |
98 } | 97 } |
99 registry_.AddInterface<mojom::TimeZoneMonitor>(this); | 98 registry_.AddInterface<mojom::TimeZoneMonitor>(this); |
100 registry_.AddInterface<mojom::WakeLockContextProvider>(this); | 99 registry_.AddInterface<mojom::WakeLockContextProvider>(this); |
(...skipping 29 matching lines...) Expand all Loading... |
130 VibrationManagerImpl::Create(std::move(request)); | 129 VibrationManagerImpl::Create(std::move(request)); |
131 } | 130 } |
132 #endif | 131 #endif |
133 | 132 |
134 void DeviceService::Create(const service_manager::Identity& remote_identity, | 133 void DeviceService::Create(const service_manager::Identity& remote_identity, |
135 mojom::FingerprintRequest request) { | 134 mojom::FingerprintRequest request) { |
136 Fingerprint::Create(std::move(request)); | 135 Fingerprint::Create(std::move(request)); |
137 } | 136 } |
138 | 137 |
139 void DeviceService::Create(const service_manager::Identity& remote_identity, | 138 void DeviceService::Create(const service_manager::Identity& remote_identity, |
140 mojom::LightSensorRequest request) { | |
141 #if defined(OS_ANDROID) | |
142 // On Android the device sensors implementations need to run on the UI thread | |
143 // to communicate to Java. | |
144 DeviceLightHost::Create(std::move(request)); | |
145 #else | |
146 // On platforms other than Android the device sensors implementations run on | |
147 // the IO thread. | |
148 if (io_task_runner_) { | |
149 io_task_runner_->PostTask(FROM_HERE, base::Bind(&DeviceLightHost::Create, | |
150 base::Passed(&request))); | |
151 } | |
152 #endif // defined(OS_ANDROID) | |
153 } | |
154 | |
155 void DeviceService::Create(const service_manager::Identity& remote_identity, | |
156 mojom::MotionSensorRequest request) { | 139 mojom::MotionSensorRequest request) { |
157 #if defined(OS_ANDROID) | 140 #if defined(OS_ANDROID) |
158 // On Android the device sensors implementations need to run on the UI thread | 141 // On Android the device sensors implementations need to run on the UI thread |
159 // to communicate to Java. | 142 // to communicate to Java. |
160 DeviceMotionHost::Create(std::move(request)); | 143 DeviceMotionHost::Create(std::move(request)); |
161 #else | 144 #else |
162 // On platforms other than Android the device sensors implementations run on | 145 // On platforms other than Android the device sensors implementations run on |
163 // the IO thread. | 146 // the IO thread. |
164 if (io_task_runner_) { | 147 if (io_task_runner_) { |
165 io_task_runner_->PostTask(FROM_HERE, base::Bind(&DeviceMotionHost::Create, | 148 io_task_runner_->PostTask(FROM_HERE, base::Bind(&DeviceMotionHost::Create, |
(...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
255 java_interface_provider_.Bind(std::move(provider)); | 238 java_interface_provider_.Bind(std::move(provider)); |
256 | 239 |
257 java_interface_provider_initialized_ = true; | 240 java_interface_provider_initialized_ = true; |
258 } | 241 } |
259 | 242 |
260 return &java_interface_provider_; | 243 return &java_interface_provider_; |
261 } | 244 } |
262 #endif | 245 #endif |
263 | 246 |
264 } // namespace device | 247 } // namespace device |
OLD | NEW |