Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(786)

Side by Side Diff: third_party/WebKit/Source/modules/sensor/Sensor.h

Issue 2551223003: [Sensors] Align sensor reading updates and 'onchange' notification with rAF. (Closed)
Patch Set: rebased Created 3 years, 12 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 Sensor_h 5 #ifndef Sensor_h
6 #define Sensor_h 6 #define Sensor_h
7 7
8 #include "bindings/core/v8/ActiveScriptWrappable.h" 8 #include "bindings/core/v8/ActiveScriptWrappable.h"
9 #include "bindings/core/v8/ScriptWrappable.h" 9 #include "bindings/core/v8/ScriptWrappable.h"
10 #include "core/dom/ContextLifecycleObserver.h" 10 #include "core/dom/ContextLifecycleObserver.h"
11 #include "core/dom/SuspendableObject.h" 11 #include "core/dom/SuspendableObject.h"
12 #include "core/frame/PlatformEventController.h" 12 #include "core/frame/PlatformEventController.h"
13 #include "modules/EventTargetModules.h" 13 #include "modules/EventTargetModules.h"
14 #include "modules/sensor/SensorOptions.h" 14 #include "modules/sensor/SensorOptions.h"
15 #include "modules/sensor/SensorProxy.h" 15 #include "modules/sensor/SensorProxy.h"
16 #include "platform/heap/Handle.h" 16 #include "platform/heap/Handle.h"
17 17
18 namespace blink { 18 namespace blink {
19 19
20 class ExceptionState; 20 class ExceptionState;
21 class ExecutionContext; 21 class ExecutionContext;
22 class SensorReading; 22 class SensorReading;
23 class SensorUpdateNotificationStrategy;
24 23
25 class Sensor : public EventTargetWithInlineData, 24 class Sensor : public EventTargetWithInlineData,
26 public ActiveScriptWrappable<Sensor>, 25 public ActiveScriptWrappable<Sensor>,
27 public ContextLifecycleObserver, 26 public ContextLifecycleObserver,
28 public SensorProxy::Observer { 27 public SensorProxy::Observer {
29 USING_GARBAGE_COLLECTED_MIXIN(Sensor); 28 USING_GARBAGE_COLLECTED_MIXIN(Sensor);
30 DEFINE_WRAPPERTYPEINFO(); 29 DEFINE_WRAPPERTYPEINFO();
31 30
32 public: 31 public:
33 enum class SensorState { Idle, Activating, Activated, Errored }; 32 enum class SensorState { Idle, Activating, Activated, Errored };
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 virtual SensorConfigurationPtr createSensorConfig(); 75 virtual SensorConfigurationPtr createSensorConfig();
77 76
78 private: 77 private:
79 void initSensorProxyIfNeeded(); 78 void initSensorProxyIfNeeded();
80 79
81 // ContextLifecycleObserver overrides. 80 // ContextLifecycleObserver overrides.
82 void contextDestroyed() override; 81 void contextDestroyed() override;
83 82
84 // SensorController::Observer overrides. 83 // SensorController::Observer overrides.
85 void onSensorInitialized() override; 84 void onSensorInitialized() override;
86 void onSensorReadingChanged() override; 85 void onSensorReadingChanged(double timestamp) override;
87 void onSensorError(ExceptionCode, 86 void onSensorError(ExceptionCode,
88 const String& sanitizedMessage, 87 const String& sanitizedMessage,
89 const String& unsanitizedMessage) override; 88 const String& unsanitizedMessage) override;
90 void onSuspended() override;
91 89
92 void onStartRequestCompleted(bool); 90 void onStartRequestCompleted(bool);
93 void onStopRequestCompleted(bool); 91 void onStopRequestCompleted(bool);
94 92
95 void startListening(); 93 void startListening();
96 void stopListening(); 94 void stopListening();
97 95
98 void onSensorUpdateNotification();
99
100 void updateState(SensorState newState); 96 void updateState(SensorState newState);
101 void reportError(ExceptionCode = UnknownError, 97 void reportError(ExceptionCode = UnknownError,
102 const String& sanitizedMessage = String(), 98 const String& sanitizedMessage = String(),
103 const String& unsanitizedMessage = String()); 99 const String& unsanitizedMessage = String());
104 100
105 void notifySensorReadingChanged(); 101 void notifySensorReadingChanged();
106 void notifyOnActivate(); 102 void notifyOnActivate();
107 void notifyError(DOMException* error); 103 void notifyError(DOMException* error);
108 104
109 private: 105 private:
110 SensorOptions m_sensorOptions; 106 SensorOptions m_sensorOptions;
111 device::mojom::blink::SensorType m_type; 107 device::mojom::blink::SensorType m_type;
112 SensorState m_state; 108 SensorState m_state;
113 Member<SensorProxy> m_sensorProxy; 109 Member<SensorProxy> m_sensorProxy;
114 std::unique_ptr<SensorUpdateNotificationStrategy> m_sensorUpdateNotifier;
115 device::SensorReading m_storedData; 110 device::SensorReading m_storedData;
116 SensorConfigurationPtr m_configuration; 111 SensorConfigurationPtr m_configuration;
112 double m_lastUpdateTimestamp;
117 }; 113 };
118 114
119 } // namespace blink 115 } // namespace blink
120 116
121 #endif // Sensor_h 117 #endif // Sensor_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698