| Index: content/renderer/device_sensors/device_sensor_event_pump.h
|
| diff --git a/content/renderer/device_sensors/device_sensor_event_pump.h b/content/renderer/device_sensors/device_sensor_event_pump.h
|
| index 45e028d8679223b34ecde43ff1317bf7a7180592..fe2cc1ac35935ee47fa848800050ae5df424474d 100644
|
| --- a/content/renderer/device_sensors/device_sensor_event_pump.h
|
| +++ b/content/renderer/device_sensors/device_sensor_event_pump.h
|
| @@ -8,82 +8,36 @@
|
| #include "base/memory/shared_memory.h"
|
| #include "base/time/time.h"
|
| #include "base/timer/timer.h"
|
| -#include "content/public/renderer/platform_event_observer.h"
|
| +#include "content/common/content_export.h"
|
| +#include "device/device_sensors/device_sensors.mojom.h"
|
| +#include "device/device_sensors/type_converters.h"
|
|
|
| namespace content {
|
|
|
| -template <typename ListenerType>
|
| -class CONTENT_EXPORT DeviceSensorEventPump
|
| - : NON_EXPORTED_BASE(public PlatformEventObserver<ListenerType>) {
|
| +class CONTENT_EXPORT DeviceSensorEventPump {
|
| public:
|
| // Default rate for firing events.
|
| static const int kDefaultPumpFrequencyHz = 60;
|
| static const int kDefaultPumpDelayMicroseconds =
|
| base::Time::kMicrosecondsPerSecond / kDefaultPumpFrequencyHz;
|
|
|
| - // PlatformEventObserver
|
| - void Start(blink::WebPlatformEventListener* listener) override {
|
| - DVLOG(2) << "requested start";
|
| -
|
| - if (state_ != STOPPED)
|
| - return;
|
| -
|
| - DCHECK(!timer_.IsRunning());
|
| -
|
| - PlatformEventObserver<ListenerType>::Start(listener);
|
| - state_ = PENDING_START;
|
| - }
|
| -
|
| - void Stop() override {
|
| - DVLOG(2) << "stop";
|
| -
|
| - if (state_ == STOPPED)
|
| - return;
|
| -
|
| - DCHECK((state_ == PENDING_START && !timer_.IsRunning()) ||
|
| - (state_ == RUNNING && timer_.IsRunning()));
|
| -
|
| - if (timer_.IsRunning())
|
| - timer_.Stop();
|
| - PlatformEventObserver<ListenerType>::Stop();
|
| - state_ = STOPPED;
|
| - }
|
| + virtual void SendFakeDataForTesting(void* fake_data) = 0;
|
|
|
| protected:
|
| - explicit DeviceSensorEventPump(RenderThread* thread)
|
| - : PlatformEventObserver<ListenerType>(thread),
|
| - pump_delay_microseconds_(kDefaultPumpDelayMicroseconds),
|
| - state_(STOPPED) {}
|
| -
|
| - ~DeviceSensorEventPump() override {
|
| - PlatformEventObserver<ListenerType>::StopIfObserving();
|
| - }
|
| + explicit DeviceSensorEventPump();
|
|
|
| - // The pump is a tri-state automaton with allowed transitions as follows:
|
| - // STOPPED -> PENDING_START
|
| - // PENDING_START -> RUNNING
|
| - // PENDING_START -> STOPPED
|
| - // RUNNING -> STOPPED
|
| - enum PumpState {
|
| - STOPPED,
|
| - RUNNING,
|
| - PENDING_START
|
| - };
|
| + virtual ~DeviceSensorEventPump();
|
|
|
| - void OnDidStart(base::SharedMemoryHandle handle) {
|
| + void OnDidStart(device::SharedMemoryPtr handle_ptr) {
|
| DVLOG(2) << "did start sensor event pump";
|
|
|
| - if (state_ != PENDING_START)
|
| - return;
|
| -
|
| - DCHECK(!timer_.IsRunning());
|
| -
|
| + base::SharedMemoryHandle handle = handle_ptr.To<base::SharedMemoryHandle>();
|
| if (InitializeReader(handle)) {
|
| + LOG(INFO) << "DeviceSensorEventPump::OnDidStart, InitializeReader OK";
|
| timer_.Start(FROM_HERE,
|
| base::TimeDelta::FromMicroseconds(pump_delay_microseconds_),
|
| this,
|
| &DeviceSensorEventPump::FireEvent);
|
| - state_ = RUNNING;
|
| }
|
| }
|
|
|
| @@ -91,7 +45,6 @@ class CONTENT_EXPORT DeviceSensorEventPump
|
| virtual bool InitializeReader(base::SharedMemoryHandle handle) = 0;
|
|
|
| int pump_delay_microseconds_;
|
| - PumpState state_;
|
| base::RepeatingTimer<DeviceSensorEventPump> timer_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(DeviceSensorEventPump);
|
|
|