- From: Anssi Kostiainen via cvs-syncmail <cvsmail@w3.org>
- Date: Thu, 26 May 2011 13:09:33 +0000
- To: public-dap-commits@w3.org
Update of /sources/public/2009/dap/system-info
In directory hutz:/tmp/cvs-serv8023
Modified Files:
battery-status.html
Log Message:
bake in Robin's review comments
Index: battery-status.html
===================================================================
RCS file: /sources/public/2009/dap/system-info/battery-status.html,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- battery-status.html 9 May 2011 09:50:35 -0000 1.12
+++ battery-status.html 26 May 2011 13:09:31 -0000 1.13
@@ -40,13 +40,30 @@
border-bottom: 0;
color: #459900;
}
+ #event-type-batterystatus {
+ border-collapse: collapse;
+ width: 100%;
+ }
+ #event-type-batterystatus td {
+ border-bottom: 1px solid #DDDDDD;
+ }
+ #event-type-batterystatus th {
+ font-family: initial;
+ text-shadow: 1px 1px 0 #666666;
+ color: white;
+ background-color: #90B8DE;
+ text-align: left;
+ font-weight: normal;
+ }
+ #event-type-batterystatus th, #event-type-batterystatus td {
+ padding: 0 5px 0 5px;
+ }
</style>
</head>
<body>
<section id='abstract'>
This specification defines a new DOM event type that provides
- information about the battery status of the hosting device and
- associated auxiliary devices.
+ information about the battery status of the hosting device.
</section>
<section id='sotd'>
@@ -59,32 +76,28 @@
</p>
</section>
+ <section id='conformance'>
+ <p>
+ This specification defines conformance criteria that apply to a single
+ product: the <dfn id="ua">User Agent</dfn> that implements the
+ interfaces that it contains.
+ </p>
+ </section>
+
<section>
<h2><a>BatteryStatusEvent</a> Interface</h2>
<p>
This interface defines the <a>batterystatus</a>
event type.
- <div class='note'>
- The inclusion of properties <code>isBattery</code>,
- <code>isCharging</code>, and <code>timeRemaining</code> is under
- consideration. The working group is looking for high value use
- cases for the said properties.
- </div>
<dl title='[NoInterfaceObject] interface BatteryStatusEvent : Event'
class='idl'>
- <dt>readonly attribute boolean isBattery</dt>
+ <dt>readonly attribute boolean isPlugged</dt>
<dd>
- Represents whether the current power source is a
- battery. If the device is currently powered by a battery,
- then <code>isBattery</code> MUST be set to <code>true</code>,
+ Represents whether the device is plugged in and its battery is
+ currently charging. If the device is current plugged in and
+ and its battery is being charged or is at its full capacity,
+ then <code>isPluged</code> MUST be set to <code>true</code>,
otherwise <code>false</code>.
- </dd>
- <dt>readonly attribute boolean isCharging</dt>
- <dd>
- Represents whether the device's battery, if in use, is
- currently charging. If the current power source is a battery
- and it is being charged, then <code>isCharging</code>
- MUST be set to <code>true</code>, otherwise <code>false</code>.
</dd>
<dt>readonly attribute float? level</dt>
<dd>
@@ -95,18 +108,6 @@
battery's level, then <code>level</code> MUST be
set to <code>null</code>.
</dd>
- <dt>readonly attribute unsigned long? timeRemaining</dt>
- <dd>
- Represents the estimated time remaining in seconds
- before the battery will be depleted, based upon current
- power usage. If <code>isCharging</code> is
- <code>true</code>, this value represents the
- estimated time remaining in seconds before the battery is
- depleted, based upon current power usage, if external
- power were removed. If the implementation is unable to
- report the estimated time remaining,
- <code>timeRemaining</code> MUST be set to <code>null</code>.
- </dd>
<dt>void initBatteryStatusEvent ()</dt>
<dd>
Initializes a <a>BatteryStatusEvent</a> created
@@ -116,66 +117,103 @@
<dt>DOMString type</dt><dd></dd>
<dt>boolean bubbles</dt><dd></dd>
<dt>boolean cancelable</dt><dd></dd>
- <dt>boolean isBattery</dt><dd></dd>
- <dt>boolean isCharging</dt><dd></dd>
+ <dt>boolean isPlugged</dt><dd></dd>
<dt>float? level</dt><dd></dd>
- <dt>unsigned long? timeRemaining</dt><dd></dd>
</dl>
</dd>
</dl>
<p>
- The <code>initBatteryStatusEvent()</code> method MUST initialize the
- event in a manner analogous to the similarly-named method in
- [[!DOM-LEVEL-3-EVENTS]].
- </p>
- <p>
- If a change in the battery status of the hosting device occurs,
- then the User Agent MUST dispatch a <a>BatteryStatusEvent</a>
- event on the <code>Window</code> [[!HTML5]] object.
+ The <a>batterystatus</a> event type MUST be available when the
+ script's global object [[!HTML5]] is either a <code>Window</code>
+ object or an object implementing the <code>WorkerUtils</code>
+ interface [[!WEBWORKERS]].
</p>
<p>
- If a change in the battery status of an auxiliary device occurs,
- and the auxiliary device is exposed on <code>o</code> object, and
- the <code>o</code> implements the <code>EventTarget</code>
- [[!DOM-LEVEL-3-EVENTS]] interface, then the User Agent MUST dispatch a
- <a>BatteryStatusEvent</a> event on the <code>o</code> object.
+ The <code>initBatteryStatusEvent()</code> method MUST initialize the
+ event in a manner analogous to the <code>initEvent()</code> method in
+ [[!DOM-LEVEL-3-EVENTS]]. The <code>isPlugged</code> and
+ <code>level</code> arguments MUST initialize the attributes with the
+ same names.
</p>
<p>
- The <code>onbatterystatus</code> event handler MUST be supported by
- <code>Window</code> objects, as an IDL attribute on the
- <code>Window</code> object. Similarly, as an IDL attribute on the
- <code>o</code> object, if it fulfills the conditions given in the
- "change in the battery status of an auxiliary device".
+ If a change in the battery status of the hosting device occurs as follows:
</p>
+ <ul>
+ <li>
+ <code>isPlugged</code> changes, or
+ </li>
+ <li>
+ <code>level</code> varies by a 1% or more
+ </li>
+ </ul>
<p>
- If an event listener is registered with the event type
- <a>batterystatus</a>, then the User Agent MUST dispatch a
- <a>BatteryStatusEvent</a> event immediately.
+ Then the <a class="product-ua" href="#ua">User Agent</a> MUST dispatch
+ a <a>BatteryStatusEvent</a> event on the <code>Window</code> [[!HTML5]]
+ and <code>WorkerGlobalObject</code> [[!WEBWORKERS]] objects.
</p>
<p class='note'>
- Make <em>immediately</em> explicit and align with
- [[!DOM-LEVEL-3-EVENTS]].
+ TODO: Conditions for event triggering must be testable.
</p>
<p>
- User Agents SHOULD dispatch a <a>BatteryStatusEvent</a> event when
- <code>timeRemaining</code> varies by a minute or more.
+ The <code>onbatterystatus</code> event handler MUST be supported by
+ <code>Window</code> and <code>WorkerGlobalObject</code> objects, as an
+ IDL attribute on the <code>Window</code> and
+ <code>WorkerGlobalObject</code> objects respectively.
</p>
- <p>
- User Agents SHOULD dispatch a <a>BatteryStatusEvent</a> event when
- <code>isCharging</code> or <code>isBattery</code> changes.
+ <p class='note'>
+ TODO: Define <code>onbatterystatus</code> event handler in WebIDL.
</p>
<p>
- User Agents SHOULD dispatch a <a>BatteryStatusEvent</a> event when
- <code>level</code> varies by a 1% or more.
+ When an event listener is registered with the event type
+ <a>batterystatus</a>, then the <a class="product-ua" href="#ua">User
+ Agent</a> MUST dispatch a <a>BatteryStatusEvent</a> event immediately.
+ </p>
+ <p class='note'>
+ TODO: Make <em>immediately</em> explicit and align with
+ [[!DOM-LEVEL-3-EVENTS]].
</p>
<section>
<h3 id='event-batterystatus'>The <dfn class='event'>batterystatus</dfn>
Event</h3>
- <p>
- User Agents MUST dispatch this event type to indicate a change in
- the battery status.
- </p>
+ <table id='event-type-batterystatus'>
+ <tr>
+ <th>Type</th>
+ <td>
+ <code>batterystatus</code>
+ </td>
+ </tr>
+ <tr>
+ <th>Interface</th>
+ <td>
+ <a>BatteryStatusEvent</a> if generated by the User Agent,
+ <code>Event</code> otherwise.
+ </td>
+ </tr>
+ <tr>
+ <th>Sync / Async</th>
+ <td>Async</td></tr>
+ <tr>
+ <th>Bubbles</th>
+ <td>No</td>
+ </tr>
+ <tr>
+ <th>Target</th>
+ <td><code>defaultView</code></td>
+ </tr>
+ <tr>
+ <th>Cancelable</th>
+ <td>No</td>
+ </tr>
+ <tr>
+ <th>Default action</th>
+ <td>none</td>
+ </tr>
+ <tr>
+ <th>Context info</th>
+ <td><code>Event.target: defaultView</code></td>
+ </tr>
+ </table>
</section>
</section>
@@ -188,7 +226,7 @@
By using the <code>addEventListener()</code> method:
</p>
<div class='example'>
- <pre class='sh_javascript'>
+ <pre class='example sh_javascript'>
window.addEventListener('batterystatus', function (event) {
console.log(event.level);
}, true);
@@ -198,7 +236,7 @@
By assigning a function expression to the <code>onbatterystatus</code> property:
</p>
<div class='example'>
- <pre class='sh_javascript'>
+ <pre class='example sh_javascript'>
window.onbatterystatus = function (event) {
console.log(event.level);
};
@@ -211,7 +249,7 @@
By using the <code>addEventListener()</code> method:
</p>
<div class='example'>
- <pre class='sh_javascript'>
+ <pre class='example sh_javascript'>
var handler = function (event) {
console.log(event.level);
window.removeEventListener('batterystatus', handler, true);
@@ -224,7 +262,7 @@
By assigning a function expression to the <code>onbatterystatus</code> property:
</p>
<div class='example'>
- <pre class='sh_javascript'>
+ <pre class='example sh_javascript'>
window.onbatterystatus = function (event) {
console.log(event.level);
window.onbatterystatus = null;
Received on Thursday, 26 May 2011 13:09:34 UTC