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

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: Comments from haraken@ Created 4 years 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/ActiveDOMObject.h" 10 #include "core/dom/ActiveDOMObject.h"
11 #include "core/dom/ContextLifecycleObserver.h" 11 #include "core/dom/ContextLifecycleObserver.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; 23 class SensorUpdateNotifier;
24 24
25 class Sensor : public EventTargetWithInlineData, 25 class Sensor : public EventTargetWithInlineData,
26 public ActiveScriptWrappable, 26 public ActiveScriptWrappable,
27 public ContextLifecycleObserver, 27 public ContextLifecycleObserver,
28 public SensorProxy::Observer { 28 public SensorProxy::Observer {
29 USING_GARBAGE_COLLECTED_MIXIN(Sensor); 29 USING_GARBAGE_COLLECTED_MIXIN(Sensor);
30 DEFINE_WRAPPERTYPEINFO(); 30 DEFINE_WRAPPERTYPEINFO();
31 31
32 public: 32 public:
33 enum class SensorState { Idle, Activating, Activated, Errored }; 33 enum class SensorState { Idle, Activating, Activated, Errored };
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 virtual SensorConfigurationPtr createSensorConfig(); 76 virtual SensorConfigurationPtr createSensorConfig();
77 77
78 private: 78 private:
79 void initSensorProxyIfNeeded(); 79 void initSensorProxyIfNeeded();
80 80
81 // ContextLifecycleObserver overrides. 81 // ContextLifecycleObserver overrides.
82 void contextDestroyed() override; 82 void contextDestroyed() override;
83 83
84 // SensorController::Observer overrides. 84 // SensorController::Observer overrides.
85 void onSensorInitialized() override; 85 void onSensorInitialized() override;
86 void onSensorReadingChanged() override; 86 void onSensorReadingChanged(double timestamp) override;
87 void onSensorError(ExceptionCode, 87 void onSensorError(ExceptionCode,
88 const String& sanitizedMessage, 88 const String& sanitizedMessage,
89 const String& unsanitizedMessage) override; 89 const String& unsanitizedMessage) override;
90 void onSuspended() override; 90 void onSuspended() override;
91 91
92 void onStartRequestCompleted(bool); 92 void onStartRequestCompleted(bool);
93 void onStopRequestCompleted(bool); 93 void onStopRequestCompleted(bool);
94 94
95 void startListening(); 95 void startListening();
96 void stopListening(); 96 void stopListening();
97 97
98 void onSensorUpdateNotification();
99
100 void updateState(SensorState newState); 98 void updateState(SensorState newState);
101 void reportError(ExceptionCode = UnknownError, 99 void reportError(ExceptionCode = UnknownError,
102 const String& sanitizedMessage = String(), 100 const String& sanitizedMessage = String(),
103 const String& unsanitizedMessage = String()); 101 const String& unsanitizedMessage = String());
104 102
105 void notifySensorReadingChanged(); 103 void notifySensorReadingChanged();
106 void notifyOnActivate(); 104 void notifyOnActivate();
107 void notifyError(DOMException* error); 105 void notifyError(DOMException* error);
108 106
109 private: 107 private:
110 SensorOptions m_sensorOptions; 108 SensorOptions m_sensorOptions;
111 device::mojom::blink::SensorType m_type; 109 device::mojom::blink::SensorType m_type;
112 SensorState m_state; 110 SensorState m_state;
113 Member<SensorProxy> m_sensorProxy; 111 Member<SensorProxy> m_sensorProxy;
114 std::unique_ptr<SensorUpdateNotificationStrategy> m_sensorUpdateNotifier; 112 std::unique_ptr<SensorUpdateNotifier> m_sensorUpdateNotifier;
115 device::SensorReading m_storedData; 113 device::SensorReading m_storedData;
116 SensorConfigurationPtr m_configuration; 114 SensorConfigurationPtr m_configuration;
117 }; 115 };
118 116
119 } // namespace blink 117 } // namespace blink
120 118
121 #endif // Sensor_h 119 #endif // Sensor_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698