interface Event { }; interface EventTarget { }; interface EventHandler { }; interface Error { }; dictionary EventInit { };
[SecureContext] interface Sensor : EventTarget { readonly attribute SensorState state; readonly attribute SensorReading? reading; void start(); void stop(); attribute EventHandler onchange; attribute EventHandler onactivate; attribute EventHandler onerror; }; dictionary SensorOptions { double? frequency; }; enum SensorState { "idle", "activating", "activated", "errored" }; [SecureContext] interface SensorReading { readonly attribute DOMHighResTimeStamp timeStamp; }; [SecureContext, Constructor(DOMString type, SensorErrorEventInit errorEventInitDict)] interface SensorErrorEvent : Event { readonly attribute Error error; }; dictionary SensorErrorEventInit : EventInit { required Error error; };
[Constructor(optional AccelerometerOptions accelerometerOptions)] interface Accelerometer : Sensor { readonly attribute AccelerometerReading? reading; readonly attribute boolean includesGravity; }; dictionary AccelerometerOptions : SensorOptions { boolean includeGravity = true; }; [Constructor(AccelerometerReadingInit AccelerometerReadingInit)] interface AccelerometerReading : SensorReading { readonly attribute double x; readonly attribute double y; readonly attribute double z; }; dictionary AccelerometerReadingInit { double x = 0; double y = 0; double z = 0; };