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

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

Issue 2384273004: [Sensors] 'onerror' event implementation (Closed)
Patch Set: updated global-interface-listing-expected.txt Created 4 years, 2 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 SensorProxy_h 5 #ifndef SensorProxy_h
6 #define SensorProxy_h 6 #define SensorProxy_h
7 7
8 #include "core/dom/ExceptionCode.h"
8 #include "device/generic_sensor/public/interfaces/sensor.mojom-blink.h" 9 #include "device/generic_sensor/public/interfaces/sensor.mojom-blink.h"
9 #include "device/generic_sensor/public/interfaces/sensor_provider.mojom-blink.h" 10 #include "device/generic_sensor/public/interfaces/sensor_provider.mojom-blink.h"
10 #include "mojo/public/cpp/bindings/binding.h" 11 #include "mojo/public/cpp/bindings/binding.h"
11 #include "platform/Supplementable.h" 12 #include "platform/Supplementable.h"
12 #include "platform/heap/Handle.h" 13 #include "platform/heap/Handle.h"
13 14
14 namespace blink { 15 namespace blink {
15 16
16 class SensorProviderProxy; 17 class SensorProviderProxy;
17 18
18 // This class wraps 'Sensor' mojo interface and used by multiple 19 // This class wraps 'Sensor' mojo interface and used by multiple
19 // JS sensor instances of the same type (within a single frame). 20 // JS sensor instances of the same type (within a single frame).
20 class SensorProxy final : public GarbageCollectedFinalized<SensorProxy>, 21 class SensorProxy final : public GarbageCollectedFinalized<SensorProxy>,
21 public device::mojom::blink::SensorClient { 22 public device::mojom::blink::SensorClient {
22 USING_PRE_FINALIZER(SensorProxy, dispose); 23 USING_PRE_FINALIZER(SensorProxy, dispose);
23 WTF_MAKE_NONCOPYABLE(SensorProxy); 24 WTF_MAKE_NONCOPYABLE(SensorProxy);
24 25
25 public: 26 public:
26 class Observer : public GarbageCollectedMixin { 27 class Observer : public GarbageCollectedMixin {
27 public: 28 public:
28 // Has valid 'Sensor' binding, {add, remove}Configuration() 29 // Has valid 'Sensor' binding, {add, remove}Configuration()
29 // methods can be called. 30 // methods can be called.
30 virtual void onSensorInitialized() {} 31 virtual void onSensorInitialized() {}
31 // Platfrom sensort reading has changed (for 'ONCHANGE' reporting mode). 32 // Platfrom sensort reading has changed (for 'ONCHANGE' reporting mode).
32 virtual void onSensorReadingChanged() {} 33 virtual void onSensorReadingChanged() {}
33 // An error has occurred. 34 // An error has occurred.
34 virtual void onSensorError() {} 35 virtual void onSensorError(ExceptionCode,
36 const String& sanitizedMessage,
37 const String& unsanitizedMessage) {}
35 }; 38 };
36 39
37 ~SensorProxy(); 40 ~SensorProxy();
38 41
39 void dispose(); 42 void dispose();
40 43
41 void addObserver(Observer*); 44 void addObserver(Observer*);
42 void removeObserver(Observer*); 45 void removeObserver(Observer*);
43 46
44 void initialize(); 47 void initialize();
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
76 79
77 private: 80 private:
78 friend class SensorProviderProxy; 81 friend class SensorProviderProxy;
79 SensorProxy(device::mojom::blink::SensorType, SensorProviderProxy*); 82 SensorProxy(device::mojom::blink::SensorType, SensorProviderProxy*);
80 83
81 // device::mojom::blink::SensorClient overrides. 84 // device::mojom::blink::SensorClient overrides.
82 void RaiseError() override; 85 void RaiseError() override;
83 void SensorReadingChanged() override; 86 void SensorReadingChanged() override;
84 87
85 // Generic handler for a fatal error. 88 // Generic handler for a fatal error.
86 void handleSensorError(); 89 void handleSensorError(ExceptionCode = UnknownError,
90 const String& sanitizedMessage = String(),
91 const String& unsanitizedMessage = String());
87 92
88 void onSensorCreated(device::mojom::blink::SensorInitParamsPtr, 93 void onSensorCreated(device::mojom::blink::SensorInitParamsPtr,
89 device::mojom::blink::SensorClientRequest); 94 device::mojom::blink::SensorClientRequest);
90 95
91 device::mojom::blink::SensorType m_type; 96 device::mojom::blink::SensorType m_type;
92 device::mojom::blink::ReportingMode m_mode; 97 device::mojom::blink::ReportingMode m_mode;
93 Member<SensorProviderProxy> m_provider; 98 Member<SensorProviderProxy> m_provider;
94 using ObserversSet = HeapHashSet<WeakMember<Observer>>; 99 using ObserversSet = HeapHashSet<WeakMember<Observer>>;
95 ObserversSet m_observers; 100 ObserversSet m_observers;
96 101
97 device::mojom::blink::SensorPtr m_sensor; 102 device::mojom::blink::SensorPtr m_sensor;
98 device::mojom::blink::SensorConfigurationPtr m_defaultConfig; 103 device::mojom::blink::SensorConfigurationPtr m_defaultConfig;
99 mojo::Binding<device::mojom::blink::SensorClient> m_clientBinding; 104 mojo::Binding<device::mojom::blink::SensorClient> m_clientBinding;
100 105
101 enum State { Uninitialized, Initializing, Initialized }; 106 enum State { Uninitialized, Initializing, Initialized };
102 State m_state; 107 State m_state;
103 mojo::ScopedSharedBufferHandle m_sharedBufferHandle; 108 mojo::ScopedSharedBufferHandle m_sharedBufferHandle;
104 mojo::ScopedSharedBufferMapping m_sharedBuffer; 109 mojo::ScopedSharedBufferMapping m_sharedBuffer;
105 Reading m_reading; 110 Reading m_reading;
106 bool m_suspended; 111 bool m_suspended;
107 }; 112 };
108 113
109 } // namespace blink 114 } // namespace blink
110 115
111 #endif // SensorProxy_h 116 #endif // SensorProxy_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698