Skip to content

Commit a85830b

Browse files
committed
Add activate event firing and handling.
See #104.
1 parent acca55a commit a85830b

File tree

2 files changed

+51
-21
lines changed

2 files changed

+51
-21
lines changed

index.bs

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -526,6 +526,7 @@ interface Sensor : EventTarget {
526526
void start();
527527
void stop();
528528
attribute EventHandler onchange;
529+
attribute EventHandler onactivate;
529530
attribute EventHandler onerror;
530531
};
531532

@@ -617,10 +618,13 @@ The {{Sensor/stop()}} method must run these steps or their [=equivalent=]:
617618

618619
619620

621+
### Sensor.onchange ### {#sensor-onchange}
620622

621-
### Sensor.onerror ### {#sensor-onerror}
623+
### Sensor.onactivate ### {#sensor-onactivate}
622624

623-
### Sensor.onchange ### {#sensor-onchange}
625+
{{Sensor/onactivate}} is an {{EventHandler}} which is called when the [=state=] transitions from "activating" to "activated".
626+
627+
### Sensor.onerror ### {#sensor-onerror}
624628

625629
### Event handlers ### {#event-handlers}
626630

@@ -640,6 +644,10 @@ that must be supported as attributes by the objects implementing the [=Sensor=]
640644
onchange
641645
change
642646
647+
648+
onactivate
649+
activate
650+
643651
644652
onerror
645653
error
@@ -889,6 +897,7 @@ Abstract Operations {#abstract-operations}
889897
1. Set |sensor_instance|’s {{Sensor/reading!!attribute}} to |reading|.
890898
1. If |sensor_instance|'s [=state=] is "activating":
891899
1. Set |sensor_instance|’s [=state=] "activated".
900+
1. [=Fire an event=] named "activate" at |sensor_instance|.
892901
1. Create an [=event=] |e| that uses the {{Event}} interface,
893902
with the event type `reading`, which does not bubble, is not cancelable, is [=trusted=], and has no default action.
894903
1. [=Queue a task=] to [=dispatch=] |e| at |sensor_instance|.

index.html

Lines changed: 40 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1441,7 +1441,7 @@
14411441
<div class="head">
14421442
<p data-fill-with="logo"><a class="logo" href="http://www.w3.org/"> <img alt="W3C" height="48" src="https://www.w3.org/StyleSheets/TR/2016/logos/W3C" width="72"> a> p>
14431443
<h1 class="p-name no-ref" id="title">Generic Sensor APIh1>
1444-
<h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="content">Editor’s Draft, <time class="dt-updated" datetime="2016-10-31">31 October 2016time>span>h2>
1444+
<h2 class="no-num no-toc no-ref heading settled" id="subtitle"><span class="content">Editor’s Draft, <time class="dt-updated" datetime="2016-11-01">1 November 2016time>span>h2>
14451445
<div data-fill-with="spec-metadata">
14461446
<dl>
14471447
<dt>This version:
@@ -1533,9 +1533,10 @@

Table of Contents

15331533
<li><a href="#sensor-reading"><span class="secno">8.1.2span> <span class="content">Sensor.readingspan>a>
15341534
<li><a href="#sensor-start"><span class="secno">8.1.3span> <span class="content">Sensor.start()span>a>
15351535
<li><a href="#sensor-stop"><span class="secno">8.1.4span> <span class="content">Sensor.stop()span>a>
1536-
<li><a href="#sensor-onerror"><span class="secno">8.1.5span> <span class="content">Sensor.onerrorspan>a>
1537-
<li><a href="#sensor-onchange"><span class="secno">8.1.6span> <span class="content">Sensor.onchangespan>a>
1538-
<li><a href="#event-handlers"><span class="secno">8.1.7span> <span class="content">Event handlersspan>a>
1536+
<li><a href="#sensor-onchange"><span class="secno">8.1.5span> <span class="content">Sensor.onchangespan>a>
1537+
<li><a href="#sensor-onactivate"><span class="secno">8.1.6span> <span class="content">Sensor.onactivatespan>a>
1538+
<li><a href="#sensor-onerror"><span class="secno">8.1.7span> <span class="content">Sensor.onerrorspan>a>
1539+
<li><a href="#event-handlers"><span class="secno">8.1.8span> <span class="content">Event handlersspan>a>
15391540
ol>
15401541
<li>
15411542
<a href="#the-sensor-reading-interface"><span class="secno">8.2span> <span class="content">The SensorReading Interfacespan>a>
@@ -1926,6 +1927,7 @@

19261927
<span class="kt">voidspan> <dfn class="nv dfn-paneled idl-code" data-dfn-for="Sensor" data-dfn-type="method" data-export="" data-lt="start()" id="dom-sensor-start">startdfn>();
19271928
<span class="kt">voidspan> <dfn class="nv dfn-paneled idl-code" data-dfn-for="Sensor" data-dfn-type="method" data-export="" data-lt="stop()" id="dom-sensor-stop">stopdfn>();
19281929
<span class="kt">attributespan> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandlera> <dfn class="nv idl-code" data-dfn-for="Sensor" data-dfn-type="attribute" data-export="" data-type="EventHandler" id="dom-sensor-onchange">onchange<a class="self-link" href="#dom-sensor-onchange">a>dfn>;
1930+
<span class="kt">attributespan> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandlera> <dfn class="nv dfn-paneled idl-code" data-dfn-for="Sensor" data-dfn-type="attribute" data-export="" data-type="EventHandler" id="dom-sensor-onactivate">onactivatedfn>;
19291931
<span class="kt">attributespan> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandlera> <dfn class="nv idl-code" data-dfn-for="Sensor" data-dfn-type="attribute" data-export="" data-type="EventHandler" id="dom-sensor-onerror">onerror<a class="self-link" href="#dom-sensor-onerror">a>dfn>;
19301932
};
19311933

@@ -2027,9 +2029,11 @@

20272029
<p>return <code>undefinedcode>.p>
20282030
ol>
20292031
div>
2030-
<h4 class="heading settled" data-level="8.1.5" id="sensor-onerror"><span class="secno">8.1.5. span><span class="content">Sensor.onerrorspan><a class="self-link" href="#sensor-onerror">a>h4>
2031-
<h4 class="heading settled" data-level="8.1.6" id="sensor-onchange"><span class="secno">8.1.6. span><span class="content">Sensor.onchangespan><a class="self-link" href="#sensor-onchange">a>h4>
2032-
<h4 class="heading settled" data-level="8.1.7" id="event-handlers"><span class="secno">8.1.7. span><span class="content">Event handlersspan><a class="self-link" href="#event-handlers">a>h4>
2032+
<h4 class="heading settled" data-level="8.1.5" id="sensor-onchange"><span class="secno">8.1.5. span><span class="content">Sensor.onchangespan><a class="self-link" href="#sensor-onchange">a>h4>
2033+
<h4 class="heading settled" data-level="8.1.6" id="sensor-onactivate"><span class="secno">8.1.6. span><span class="content">Sensor.onactivatespan><a class="self-link" href="#sensor-onactivate">a>h4>
2034+
<p><code class="idl"><a data-link-type="idl" href="#dom-sensor-onactivate" id="ref-for-dom-sensor-onactivate-1">onactivatea>code> is an <code class="idl"><a data-link-type="idl" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandlera>code> which is called when the <a data-link-type="dfn" href="#state" id="ref-for-state-8">statea> transitions from <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-activating" id="ref-for-dom-sensorstate-activating-3">"activating"a> to <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-activated" id="ref-for-dom-sensorstate-activated-3">"activated"a>.p>
2035+
<h4 class="heading settled" data-level="8.1.7" id="sensor-onerror"><span class="secno">8.1.7. span><span class="content">Sensor.onerrorspan><a class="self-link" href="#sensor-onerror">a>h4>
2036+
<h4 class="heading settled" data-level="8.1.8" id="event-handlers"><span class="secno">8.1.8. span><span class="content">Event handlersspan><a class="self-link" href="#event-handlers">a>h4>
20332037
<p>The following are the <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handlers">event handlersa> (and their corresponding <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-event-type">event handler event typesa>)
20342038
that must be supported as attributes by the objects implementing the <a data-link-type="dfn" href="#concept-sensor" id="ref-for-concept-sensor-32">Sensora> interface:p>
20352039
<table class="simple">
@@ -2041,6 +2045,9 @@

20412045
<tr>
20422046
<td><strong><code>onchangecode>strong>
20432047
<td><code>changecode>
2048+
<tr>
2049+
<td><strong><code>onactivatecode>strong>
2050+
<td><code>activatecode>
20442051
<tr>
20452052
<td><strong><code>onerrorcode>strong>
20462053
<td><code>errorcode>
@@ -2141,7 +2148,7 @@

21412148
<li data-md="">
21422149
<p>Set <var>sensor_instancevar>’s <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-sensor-reading" id="ref-for-dom-sensor-reading-4">readinga>code> attribute to <code>nullcode>.p>
21432150
<li data-md="">
2144-
<p>Set <var>sensor_instancevar>’s <a data-link-type="dfn" href="#state" id="ref-for-state-8">statea> to <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-idle" id="ref-for-dom-sensorstate-idle-6">"idle"a>.p>
2151+
<p>Set <var>sensor_instancevar>’s <a data-link-type="dfn" href="#state" id="ref-for-state-9">statea> to <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-idle" id="ref-for-dom-sensorstate-idle-6">"idle"a>.p>
21452152
<li data-md="">
21462153
<p>return <var>sensor_instancevar>.p>
21472154
ol>
@@ -2169,7 +2176,7 @@

21692176
<li data-md="">
21702177
<p>Let <var>current_readingvar> be <var>sensorvar>’s associated <a data-link-type="dfn" href="#current-reading" id="ref-for-current-reading-2">current readinga>.p>
21712178
<li data-md="">
2172-
<p>If <var>current_readingvar> is not <code>nullcode> and <var>sensor_instancevar>’s state is still <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-activating" id="ref-for-dom-sensorstate-activating-3">"activating"a>, thenp>
2179+
<p>If <var>current_readingvar> is not <code>nullcode> and <var>sensor_instancevar>’s state is still <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-activating" id="ref-for-dom-sensorstate-activating-4">"activating"a>, thenp>
21732180
<ol>
21742181
<li data-md="">
21752182
<p>invoke the <a data-link-type="dfn" href="#update-reading" id="ref-for-update-reading-1">Update Readinga> operation, passing it <var>sensor_instancevar> and <var>current_readingvar> as arguments.p>
@@ -2410,10 +2417,12 @@

24102417
<li data-md="">
24112418
<p>Set <var>sensor_instancevar>’s <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-sensor-reading" id="ref-for-dom-sensor-reading-5">readinga>code> to <var>readingvar>.p>
24122419
<li data-md="">
2413-
<p>If <var>sensor_instancevar>’s <a data-link-type="dfn" href="#state" id="ref-for-state-9">statea> is <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-activating" id="ref-for-dom-sensorstate-activating-4">"activating"a>:p>
2420+
<p>If <var>sensor_instancevar>’s <a data-link-type="dfn" href="#state" id="ref-for-state-10">statea> is <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-activating" id="ref-for-dom-sensorstate-activating-5">"activating"a>:p>
24142421
<ol>
24152422
<li data-md="">
2416-
<p>Set <var>sensor_instancevar>’s <a data-link-type="dfn" href="#state" id="ref-for-state-10">statea> <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-activated" id="ref-for-dom-sensorstate-activated-3">"activated"a>.p>
2423+
<p>Set <var>sensor_instancevar>’s <a data-link-type="dfn" href="#state" id="ref-for-state-11">statea> <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-activated" id="ref-for-dom-sensorstate-activated-4">"activated"a>.p>
2424+
<li data-md="">
2425+
<p><a data-link-type="dfn" href="https://dom.spec.whatwg.org/#concept-event-fire">Fire an eventa> named "activate" at <var>sensor_instancevar>.p>
24172426
ol>
24182427
<li data-md="">
24192428
<p>Create an <a data-link-type="dfn" href="https://dom.spec.whatwg.org#concept-event">eventa> <var>evar> that uses the <code class="idl"><a data-link-type="idl" href="https://dom.spec.whatwg.org/#event">Eventa>code> interface,
@@ -2440,7 +2449,7 @@

24402449
<li data-md="">
24412450
<p>Set <var>sensor_instancevar>’s <code class="idl"><a class="idl-code" data-link-type="attribute" href="#dom-sensor-reading" id="ref-for-dom-sensor-reading-6">readinga>code> to <code>nullcode>.p>
24422451
<li data-md="">
2443-
<p>Set <var>sensor_instancevar>’s <a data-link-type="dfn" href="#state" id="ref-for-state-11">statea> to <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-errored" id="ref-for-dom-sensorstate-errored-4">"errored"a>.p>
2452+
<p>Set <var>sensor_instancevar>’s <a data-link-type="dfn" href="#state" id="ref-for-state-12">statea> to <a class="idl-code" data-link-type="enum-value" href="#dom-sensorstate-errored" id="ref-for-dom-sensorstate-errored-4">"errored"a>.p>
24442453
<li data-md="">
24452454
<p>Create an <a data-link-type="dfn" href="https://dom.spec.whatwg.org#concept-event">eventa> <var>evar> that uses the <code class="idl"><a data-link-type="idl" href="#sensorerrorevent" id="ref-for-sensorerrorevent-1">SensorErrorEventa>code> interface,
24462455
with the event type <code>errorcode>, which does not bubble, is not cancelable, is <a data-link-type="dfn" href="https://html.spec.whatwg.org/multipage/webappapis.html#concept-events-trusted">trusteda>, and has no default action.p>
@@ -2908,6 +2917,7 @@

29082917
<li><a href="#implementation-specific">implementation specifica><span>, in §6.3span>
29092918
<li><a href="#low-level">low-levela><span>, in §6.2span>
29102919
<li><a href="#observe-a-sensor">Observe a Sensora><span>, in §9.4span>
2920+
<li><a href="#dom-sensor-onactivate">onactivatea><span>, in §8.1span>
29112921
<li><a href="#dom-sensor-onchange">onchangea><span>, in §8.1span>
29122922
<li><a href="#dom-sensor-onerror">onerrora><span>, in §8.1span>
29132923
<li><a href="#periodic">periodica><span>, in §6.3span>
@@ -2961,6 +2971,7 @@

29612971
<li><a href="https://dom.spec.whatwg.org#concept-event-dispatch">dispatcha>
29622972
<li><a href="https://dom.spec.whatwg.org/#concept-document">documenta>
29632973
<li><a href="https://dom.spec.whatwg.org#concept-event">eventa>
2974+
<li><a href="https://dom.spec.whatwg.org/#concept-event-fire">fire an eventa>
29642975
ul>
29652976
<li>
29662977
<a data-link-type="biblio">[hr-time-2]a> defines the following terms:
@@ -3060,6 +3071,7 @@

I

30603071
<span class="kt">voidspan> <a class="nv" href="#dom-sensor-start">starta>();
30613072
<span class="kt">voidspan> <a class="nv" href="#dom-sensor-stop">stopa>();
30623073
<span class="kt">attributespan> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandlera> <a class="nv" data-type="EventHandler" href="#dom-sensor-onchange">onchangea>;
3074+
<span class="kt">attributespan> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandlera> <a class="nv" data-type="EventHandler" href="#dom-sensor-onactivate">onactivatea>;
30633075
<span class="kt">attributespan> <a class="n" data-link-type="idl-name" href="https://html.spec.whatwg.org/multipage/webappapis.html#eventhandler">EventHandlera> <a class="nv" data-type="EventHandler" href="#dom-sensor-onerror">onerrora>;
30643076
};
30653077

@@ -3266,7 +3278,7 @@

I

32663278
<li><a href="#ref-for-concept-sensor-23">7.2. Sensora> <a href="#ref-for-concept-sensor-24">(2)a> <a href="#ref-for-concept-sensor-25">(3)a> <a href="#ref-for-concept-sensor-26">(4)a> <a href="#ref-for-concept-sensor-27">(5)a> <a href="#ref-for-concept-sensor-28">(6)a> <a href="#ref-for-concept-sensor-29">(7)a>
32673279
<li><a href="#ref-for-concept-sensor-30">8.1. The Sensor Interfacea>
32683280
<li><a href="#ref-for-concept-sensor-31">8.1.2. Sensor.readinga>
3269-
<li><a href="#ref-for-concept-sensor-32">8.1.7. Event handlersa>
3281+
<li><a href="#ref-for-concept-sensor-32">8.1.8. Event handlersa>
32703282
<li><a href="#ref-for-concept-sensor-33">8.2. The SensorReading Interfacea>
32713283
<li><a href="#ref-for-concept-sensor-34">8.2.1. SensorReading.timeStampa>
32723284
<li><a href="#ref-for-concept-sensor-35">9.1. Construct Sensor Objecta> <a href="#ref-for-concept-sensor-36">(2)a> <a href="#ref-for-concept-sensor-37">(3)a>
@@ -3378,6 +3390,12 @@

I

33783390
<li><a href="#ref-for-dom-sensor-stop-1">8.1.4. Sensor.stop()a>
33793391
ul>
33803392
aside>
3393+
<aside class="dfn-panel" data-for="dom-sensor-onactivate">
3394+
<b><a href="#dom-sensor-onactivate">#dom-sensor-onactivatea>b><b>Referenced in:b>
3395+
<ul>
3396+
<li><a href="#ref-for-dom-sensor-onactivate-1">8.1.6. Sensor.onactivatea>
3397+
ul>
3398+
aside>
33813399
<aside class="dfn-panel" data-for="dictdef-sensoroptions">
33823400
<b><a href="#dictdef-sensoroptions">#dictdef-sensoroptionsa>b><b>Referenced in:b>
33833401
<ul>
@@ -3411,16 +3429,18 @@

I

34113429
<ul>
34123430
<li><a href="#ref-for-dom-sensorstate-activating-1">8.1. The Sensor Interfacea>
34133431
<li><a href="#ref-for-dom-sensorstate-activating-2">8.1.3. Sensor.start()a>
3414-
<li><a href="#ref-for-dom-sensorstate-activating-3">9.2. Register a Sensora>
3415-
<li><a href="#ref-for-dom-sensorstate-activating-4">9.9. Update Readinga>
3432+
<li><a href="#ref-for-dom-sensorstate-activating-3">8.1.6. Sensor.onactivatea>
3433+
<li><a href="#ref-for-dom-sensorstate-activating-4">9.2. Register a Sensora>
3434+
<li><a href="#ref-for-dom-sensorstate-activating-5">9.9. Update Readinga>
34163435
ul>
34173436
aside>
34183437
<aside class="dfn-panel" data-for="dom-sensorstate-activated">
34193438
<b><a href="#dom-sensorstate-activated">#dom-sensorstate-activateda>b><b>Referenced in:b>
34203439
<ul>
34213440
<li><a href="#ref-for-dom-sensorstate-activated-1">8.1. The Sensor Interfacea>
34223441
<li><a href="#ref-for-dom-sensorstate-activated-2">8.1.2. Sensor.readinga>
3423-
<li><a href="#ref-for-dom-sensorstate-activated-3">9.9. Update Readinga>
3442+
<li><a href="#ref-for-dom-sensorstate-activated-3">8.1.6. Sensor.onactivatea>
3443+
<li><a href="#ref-for-dom-sensorstate-activated-4">9.9. Update Readinga>
34243444
ul>
34253445
aside>
34263446
<aside class="dfn-panel" data-for="dom-sensorstate-errored">
@@ -3439,9 +3459,10 @@

I

34393459
<li><a href="#ref-for-state-3">8.1.2. Sensor.readinga>
34403460
<li><a href="#ref-for-state-4">8.1.3. Sensor.start()a> <a href="#ref-for-state-5">(2)a>
34413461
<li><a href="#ref-for-state-6">8.1.4. Sensor.stop()a> <a href="#ref-for-state-7">(2)a>
3442-
<li><a href="#ref-for-state-8">9.1. Construct Sensor Objecta>
3443-
<li><a href="#ref-for-state-9">9.9. Update Readinga> <a href="#ref-for-state-10">(2)a>
3444-
<li><a href="#ref-for-state-11">9.10. Handle Errorsa>
3462+
<li><a href="#ref-for-state-8">8.1.6. Sensor.onactivatea>
3463+
<li><a href="#ref-for-state-9">9.1. Construct Sensor Objecta>
3464+
<li><a href="#ref-for-state-10">9.9. Update Readinga> <a href="#ref-for-state-11">(2)a>
3465+
<li><a href="#ref-for-state-12">9.10. Handle Errorsa>
34453466
ul>
34463467
aside>
34473468
<aside class="dfn-panel" data-for="desired-frequency">

0 commit comments

Comments
 (0)