| 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 #ifndef SERVICES_DEVICE_DEVICE_SERVICE_H_ | 5 #ifndef SERVICES_DEVICE_DEVICE_SERVICE_H_ |
| 6 #define SERVICES_DEVICE_DEVICE_SERVICE_H_ | 6 #define SERVICES_DEVICE_DEVICE_SERVICE_H_ |
| 7 | 7 |
| 8 #include "base/memory/ref_counted.h" | 8 #include "base/memory/ref_counted.h" |
| 9 #include "device/generic_sensor/public/interfaces/sensor_provider.mojom.h" | 9 #include "device/generic_sensor/public/interfaces/sensor_provider.mojom.h" |
| 10 #include "device/nfc/nfc_provider.mojom.h" |
| 10 #include "device/screen_orientation/public/interfaces/screen_orientation.mojom.h
" | 11 #include "device/screen_orientation/public/interfaces/screen_orientation.mojom.h
" |
| 11 #include "device/sensors/public/interfaces/motion.mojom.h" | 12 #include "device/sensors/public/interfaces/motion.mojom.h" |
| 12 #include "device/sensors/public/interfaces/orientation.mojom.h" | 13 #include "device/sensors/public/interfaces/orientation.mojom.h" |
| 13 #include "device/wake_lock/public/interfaces/wake_lock_provider.mojom.h" | 14 #include "device/wake_lock/public/interfaces/wake_lock_provider.mojom.h" |
| 14 #include "device/wake_lock/wake_lock_service_context.h" | 15 #include "device/wake_lock/wake_lock_service_context.h" |
| 15 #include "mojo/public/cpp/bindings/binding_set.h" | 16 #include "mojo/public/cpp/bindings/binding_set.h" |
| 16 #include "services/device/public/interfaces/battery_monitor.mojom.h" | 17 #include "services/device/public/interfaces/battery_monitor.mojom.h" |
| 17 #include "services/device/public/interfaces/fingerprint.mojom.h" | 18 #include "services/device/public/interfaces/fingerprint.mojom.h" |
| 18 #include "services/device/public/interfaces/power_monitor.mojom.h" | 19 #include "services/device/public/interfaces/power_monitor.mojom.h" |
| 19 #include "services/device/public/interfaces/time_zone_monitor.mojom.h" | 20 #include "services/device/public/interfaces/time_zone_monitor.mojom.h" |
| 20 #include "services/device/public/interfaces/vibration_manager.mojom.h" | 21 #include "services/device/public/interfaces/vibration_manager.mojom.h" |
| 21 #include "services/service_manager/public/cpp/binder_registry.h" | 22 #include "services/service_manager/public/cpp/binder_registry.h" |
| 22 #include "services/service_manager/public/cpp/interface_provider.h" | 23 #include "services/service_manager/public/cpp/interface_provider.h" |
| 23 #include "services/service_manager/public/cpp/service.h" | 24 #include "services/service_manager/public/cpp/service.h" |
| 24 | 25 |
| 26 #if defined(OS_ANDROID) |
| 27 #include "base/android/scoped_java_ref.h" |
| 28 #endif |
| 29 |
| 25 namespace base { | 30 namespace base { |
| 26 class SingleThreadTaskRunner; | 31 class SingleThreadTaskRunner; |
| 27 } | 32 } |
| 28 | 33 |
| 29 namespace device { | 34 namespace device { |
| 30 | 35 |
| 31 class PowerMonitorMessageBroadcaster; | 36 class PowerMonitorMessageBroadcaster; |
| 32 class TimeZoneMonitor; | 37 class TimeZoneMonitor; |
| 33 | 38 |
| 34 #if defined(OS_ANDROID) | 39 #if defined(OS_ANDROID) |
| 40 // NOTE: See the comments on the definitions of |WakeLockContextCallback| |
| 41 // and NFCDelegate.java to understand the semantics and usage of these |
| 42 // parameters. |
| 35 std::unique_ptr<service_manager::Service> CreateDeviceService( | 43 std::unique_ptr<service_manager::Service> CreateDeviceService( |
| 36 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, | 44 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, |
| 37 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, | 45 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
| 38 const WakeLockContextCallback& wake_lock_context_callback); | 46 const WakeLockContextCallback& wake_lock_context_callback, |
| 47 const base::android::JavaRef<jobject>& java_nfc_delegate); |
| 39 #else | 48 #else |
| 40 std::unique_ptr<service_manager::Service> CreateDeviceService( | 49 std::unique_ptr<service_manager::Service> CreateDeviceService( |
| 41 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, | 50 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, |
| 42 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner); | 51 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner); |
| 43 #endif | 52 #endif |
| 44 | 53 |
| 45 class DeviceService : public service_manager::Service { | 54 class DeviceService : public service_manager::Service { |
| 46 public: | 55 public: |
| 47 #if defined(OS_ANDROID) | 56 #if defined(OS_ANDROID) |
| 48 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, | 57 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, |
| 49 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, | 58 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, |
| 50 const WakeLockContextCallback& wake_lock_context_callback); | 59 const WakeLockContextCallback& wake_lock_context_callback, |
| 60 const base::android::JavaRef<jobject>& java_nfc_delegate); |
| 51 #else | 61 #else |
| 52 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, | 62 DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, |
| 53 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner); | 63 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner); |
| 54 #endif | 64 #endif |
| 55 ~DeviceService() override; | 65 ~DeviceService() override; |
| 56 | 66 |
| 57 private: | 67 private: |
| 58 // service_manager::Service: | 68 // service_manager::Service: |
| 59 void OnStart() override; | 69 void OnStart() override; |
| 60 void OnBindInterface(const service_manager::BindSourceInfo& source_info, | 70 void OnBindInterface(const service_manager::BindSourceInfo& source_info, |
| (...skipping 13 matching lines...) Expand all Loading... |
| 74 mojom::OrientationSensorRequest request); | 84 mojom::OrientationSensorRequest request); |
| 75 | 85 |
| 76 void BindOrientationAbsoluteSensorRequest( | 86 void BindOrientationAbsoluteSensorRequest( |
| 77 const service_manager::BindSourceInfo& source_info, | 87 const service_manager::BindSourceInfo& source_info, |
| 78 mojom::OrientationAbsoluteSensorRequest request); | 88 mojom::OrientationAbsoluteSensorRequest request); |
| 79 | 89 |
| 80 #if !defined(OS_ANDROID) | 90 #if !defined(OS_ANDROID) |
| 81 void BindBatteryMonitorRequest( | 91 void BindBatteryMonitorRequest( |
| 82 const service_manager::BindSourceInfo& source_info, | 92 const service_manager::BindSourceInfo& source_info, |
| 83 mojom::BatteryMonitorRequest request); | 93 mojom::BatteryMonitorRequest request); |
| 94 void BindNFCProviderRequest( |
| 95 const service_manager::BindSourceInfo& source_info, |
| 96 nfc::mojom::NFCProviderRequest request); |
| 84 void BindVibrationManagerRequest( | 97 void BindVibrationManagerRequest( |
| 85 const service_manager::BindSourceInfo& source_info, | 98 const service_manager::BindSourceInfo& source_info, |
| 86 mojom::VibrationManagerRequest request); | 99 mojom::VibrationManagerRequest request); |
| 87 #endif | 100 #endif |
| 88 | 101 |
| 89 void BindPowerMonitorRequest( | 102 void BindPowerMonitorRequest( |
| 90 const service_manager::BindSourceInfo& source_info, | 103 const service_manager::BindSourceInfo& source_info, |
| 91 mojom::PowerMonitorRequest request); | 104 mojom::PowerMonitorRequest request); |
| 92 | 105 |
| 93 void BindScreenOrientationListenerRequest( | 106 void BindScreenOrientationListenerRequest( |
| 94 const service_manager::BindSourceInfo& source_info, | 107 const service_manager::BindSourceInfo& source_info, |
| 95 mojom::ScreenOrientationListenerRequest request); | 108 mojom::ScreenOrientationListenerRequest request); |
| 96 | 109 |
| 97 void BindSensorProviderRequest( | 110 void BindSensorProviderRequest( |
| 98 const service_manager::BindSourceInfo& source_info, | 111 const service_manager::BindSourceInfo& source_info, |
| 99 mojom::SensorProviderRequest request); | 112 mojom::SensorProviderRequest request); |
| 100 | 113 |
| 101 void BindTimeZoneMonitorRequest( | 114 void BindTimeZoneMonitorRequest( |
| 102 const service_manager::BindSourceInfo& source_info, | 115 const service_manager::BindSourceInfo& source_info, |
| 103 mojom::TimeZoneMonitorRequest request); | 116 mojom::TimeZoneMonitorRequest request); |
| 104 | 117 |
| 105 void BindWakeLockProviderRequest( | 118 void BindWakeLockProviderRequest( |
| 106 const service_manager::BindSourceInfo& source_info, | 119 const service_manager::BindSourceInfo& source_info, |
| 107 mojom::WakeLockProviderRequest request); | 120 mojom::WakeLockProviderRequest request); |
| 108 | 121 |
| 109 std::unique_ptr<PowerMonitorMessageBroadcaster> | 122 std::unique_ptr<PowerMonitorMessageBroadcaster> |
| 110 power_monitor_message_broadcaster_; | 123 power_monitor_message_broadcaster_; |
| 111 std::unique_ptr<TimeZoneMonitor> time_zone_monitor_; | 124 std::unique_ptr<TimeZoneMonitor> time_zone_monitor_; |
| 125 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_; |
| 126 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; |
| 127 |
| 128 WakeLockContextCallback wake_lock_context_callback_; |
| 129 |
| 112 #if defined(OS_ANDROID) | 130 #if defined(OS_ANDROID) |
| 113 // Binds |java_interface_provider_| to an interface registry that exposes | 131 // Binds |java_interface_provider_| to an interface registry that exposes |
| 114 // factories for the interfaces that are provided via Java on Android. | 132 // factories for the interfaces that are provided via Java on Android. |
| 115 service_manager::InterfaceProvider* GetJavaInterfaceProvider(); | 133 service_manager::InterfaceProvider* GetJavaInterfaceProvider(); |
| 116 | 134 |
| 117 // InterfaceProvider that is bound to the Java-side interface registry. | 135 // InterfaceProvider that is bound to the Java-side interface registry. |
| 118 service_manager::InterfaceProvider java_interface_provider_; | 136 service_manager::InterfaceProvider java_interface_provider_; |
| 119 | 137 |
| 120 bool java_interface_provider_initialized_; | 138 bool java_interface_provider_initialized_; |
| 139 |
| 140 base::android::ScopedJavaGlobalRef<jobject> java_nfc_delegate_; |
| 121 #endif | 141 #endif |
| 122 | 142 |
| 123 scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_; | |
| 124 scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; | |
| 125 | |
| 126 WakeLockContextCallback wake_lock_context_callback_; | |
| 127 | |
| 128 service_manager::BinderRegistry registry_; | 143 service_manager::BinderRegistry registry_; |
| 129 | 144 |
| 130 DISALLOW_COPY_AND_ASSIGN(DeviceService); | 145 DISALLOW_COPY_AND_ASSIGN(DeviceService); |
| 131 }; | 146 }; |
| 132 | 147 |
| 133 } // namespace device | 148 } // namespace device |
| 134 | 149 |
| 135 #endif // SERVICES_DEVICE_DEVICE_SERVICE_H_ | 150 #endif // SERVICES_DEVICE_DEVICE_SERVICE_H_ |
| OLD | NEW |