diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-12 14:07:37 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2017-07-17 10:29:26 +0000 |
commit | ec02ee4181c49b61fce1c8fb99292dbb8139cc90 (patch) | |
tree | 25cde714b2b71eb639d1cd53f5a22e9ba76e14ef /chromium/services/device/device_service.h | |
parent | bb09965444b5bb20b096a291445170876225268d (diff) | |
download | qtwebengine-chromium-ec02ee4181c49b61fce1c8fb99292dbb8139cc90.tar.gz |
BASELINE: Update Chromium to 59.0.3071.134
Change-Id: Id02ef6fb2204c5fd21668a1c3e6911c83b17585a
Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/services/device/device_service.h')
-rw-r--r-- | chromium/services/device/device_service.h | 113 |
1 files changed, 107 insertions, 6 deletions
diff --git a/chromium/services/device/device_service.h b/chromium/services/device/device_service.h index 630b928af7b..cd38c236003 100644 --- a/chromium/services/device/device_service.h +++ b/chromium/services/device/device_service.h @@ -6,50 +6,151 @@ #define SERVICES_DEVICE_DEVICE_SERVICE_H_ #include "base/memory/ref_counted.h" +#include "device/battery/battery_monitor.mojom.h" +#include "device/generic_sensor/public/interfaces/sensor_provider.mojom.h" +#include "device/screen_orientation/public/interfaces/screen_orientation.mojom.h" +#include "device/sensors/public/interfaces/light.mojom.h" +#include "device/sensors/public/interfaces/motion.mojom.h" +#include "device/sensors/public/interfaces/orientation.mojom.h" +#include "device/vibration/vibration_manager.mojom.h" +#include "device/wake_lock/public/interfaces/wake_lock_context_provider.mojom.h" +#include "device/wake_lock/wake_lock_service_context.h" #include "mojo/public/cpp/bindings/binding_set.h" #include "services/device/public/interfaces/fingerprint.mojom.h" #include "services/device/public/interfaces/power_monitor.mojom.h" #include "services/device/public/interfaces/time_zone_monitor.mojom.h" +#include "services/service_manager/public/cpp/binder_registry.h" #include "services/service_manager/public/cpp/interface_factory.h" +#include "services/service_manager/public/cpp/interface_provider.h" #include "services/service_manager/public/cpp/service.h" +namespace base { +class SingleThreadTaskRunner; +} + namespace device { +class PowerMonitorMessageBroadcaster; class TimeZoneMonitor; +#if defined(OS_ANDROID) +std::unique_ptr<service_manager::Service> CreateDeviceService( + scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, + const WakeLockContextCallback& wake_lock_context_callback); +#else std::unique_ptr<service_manager::Service> CreateDeviceService( - scoped_refptr<base::SingleThreadTaskRunner> file_task_runner); + scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner); +#endif class DeviceService : public service_manager::Service, public service_manager::InterfaceFactory<mojom::Fingerprint>, + public service_manager::InterfaceFactory<mojom::LightSensor>, + public service_manager::InterfaceFactory<mojom::MotionSensor>, + public service_manager::InterfaceFactory<mojom::OrientationSensor>, + public service_manager::InterfaceFactory< + mojom::OrientationAbsoluteSensor>, +#if !defined(OS_ANDROID) + // On Android the Device Service provides BatteryMonitor via Java. + public service_manager::InterfaceFactory<mojom::BatteryMonitor>, + // On Android the Device Service provides VibrationManager via Java. + public service_manager::InterfaceFactory<mojom::VibrationManager>, +#endif public service_manager::InterfaceFactory<mojom::PowerMonitor>, - public service_manager::InterfaceFactory<mojom::TimeZoneMonitor> { + public service_manager::InterfaceFactory< + mojom::ScreenOrientationListener>, + public service_manager::InterfaceFactory<mojom::SensorProvider>, + public service_manager::InterfaceFactory<mojom::TimeZoneMonitor>, + public service_manager::InterfaceFactory<mojom::WakeLockContextProvider> { public: - DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner); +#if defined(OS_ANDROID) + DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner, + const WakeLockContextCallback& wake_lock_context_callback); +#else + DeviceService(scoped_refptr<base::SingleThreadTaskRunner> file_task_runner, + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner); +#endif ~DeviceService() override; private: // service_manager::Service: void OnStart() override; - bool OnConnect(const service_manager::ServiceInfo& remote_info, - service_manager::InterfaceRegistry* registry) override; + void OnBindInterface(const service_manager::ServiceInfo& source_info, + const std::string& interface_name, + mojo::ScopedMessagePipeHandle interface_pipe) override; // InterfaceFactory<mojom::Fingerprint>: void Create(const service_manager::Identity& remote_identity, mojom::FingerprintRequest request) override; + // InterfaceFactory<mojom::LightSensor>: + void Create(const service_manager::Identity& remote_identity, + mojom::LightSensorRequest request) override; + + // InterfaceFactory<mojom::MotionSensor>: + void Create(const service_manager::Identity& remote_identity, + mojom::MotionSensorRequest request) override; + + // InterfaceFactory<mojom::OrientationSensor>: + void Create(const service_manager::Identity& remote_identity, + mojom::OrientationSensorRequest request) override; + + // InterfaceFactory<mojom::OrientationAbsolueSensor>: + void Create(const service_manager::Identity& remote_identity, + mojom::OrientationAbsoluteSensorRequest request) override; + +#if !defined(OS_ANDROID) + // InterfaceFactory<mojom::BatteryMonitor>: + void Create(const service_manager::Identity& remote_identity, + mojom::BatteryMonitorRequest request) override; + // InterfaceFactory<mojom::VibrationManager>: + void Create(const service_manager::Identity& remote_identity, + mojom::VibrationManagerRequest request) override; +#endif + // InterfaceFactory<mojom::PowerMonitor>: void Create(const service_manager::Identity& remote_identity, mojom::PowerMonitorRequest request) override; + // InterfaceFactory<mojom::ScreenOrientationListener>: + void Create(const service_manager::Identity& remote_identity, + mojom::ScreenOrientationListenerRequest request) override; + + // InterfaceFactory<mojom::SensorProvider>: + void Create(const service_manager::Identity& remote_identity, + mojom::SensorProviderRequest request) override; + // InterfaceFactory<mojom::TimeZoneMonitor>: void Create(const service_manager::Identity& remote_identity, mojom::TimeZoneMonitorRequest request) override; - std::unique_ptr<device::TimeZoneMonitor> time_zone_monitor_; + // InterfaceFactory<mojom::WakeLockContextProvider>: + void Create(const service_manager::Identity& remote_identity, + mojom::WakeLockContextProviderRequest request) override; + + std::unique_ptr<PowerMonitorMessageBroadcaster> + power_monitor_message_broadcaster_; + std::unique_ptr<TimeZoneMonitor> time_zone_monitor_; +#if defined(OS_ANDROID) + // Binds |java_interface_provider_| to an interface registry that exposes + // factories for the interfaces that are provided via Java on Android. + service_manager::InterfaceProvider* GetJavaInterfaceProvider(); + + // InterfaceProvider that is bound to the Java-side interface registry. + service_manager::InterfaceProvider java_interface_provider_; + + bool java_interface_provider_initialized_; +#endif scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_; + scoped_refptr<base::SingleThreadTaskRunner> io_task_runner_; + + WakeLockContextCallback wake_lock_context_callback_; + + service_manager::BinderRegistry registry_; DISALLOW_COPY_AND_ASSIGN(DeviceService); }; |