W3C home > Mailing lists > Public > public-device-apis@w3.org > May 2010

Bugs in SysInfo WebIDL

From: Dominique Hazael-Massieux <dom@w3.org>
Date: Wed, 26 May 2010 14:37:52 +0200
To: Max Froumentin <maxfro@opera.com>
Cc: public-device-apis <public-device-apis@w3.org>
Message-ID: <1274877472.2149.305.camel@localhost>
Hi,

Running the WebIDL checker on the current editors draft of SysInfo and
reviewing it manually, I've found the following problems:
* SystemInfo.get() and SystemInfo.monitor() accepts either a name or a
URI, but the spec doesn't explain the possible equivalence between them;
based on section 5, I assume that invoking get with
"http://www.w3.org/2009/dap/SysInfo/Power" should return the same
results as invoking it with just "Power" but that should be stated
explicitly; also, the comparison algorithm for the URIs should be
clarified (I assume we want only a character-per-character comparison,
without any normalization)

* "ErrorCB?" in the definition of SystemInfo.get and SystemInfo.monitor
should be just "ErrorCB" (interface types are not nullable since they
already allow the null value according to the WebIDL spec [1])

* the attribute info is defined on a number of *Attributes interfaces as
of type "String?" instead of DOMString?

* although the syntax of arrays is not formally defined in WebIDL yet, I
believe they are supposed to be written
 attribute DOMString[] foo;
rather than
 attribute DOMString foo[]; 
(which is what the spec currently uses)

* Options.timeout is defined twice, with different descriptions; note
that the type that should be kept is "unsigned long"

* Error.PERMISSION_DENIED has a numeric value of 0 — isn't it a bit
dangerous to use 0 as a value since it is equivalent to false? The
PositionError interface in Geolocation only uses strictly positive
values

* in the 1st example under 4.8 Sensors, I suggest adding a comment that
"setColorScheme" is a user-defined function or something along that line
— some readers will assume this is also defined in the spec.

* StorageUnitAttributes.isReadWrite is a boolean - it means it doesn't
allow to distinguish read-only from write-only storages? (actually, the
description seems to imply that the attribute really means
"isNotReadyOnly", but even that is not entirely clear)

* KeyboardAttributes.type and KeyboardAttributes.isHardware don't seem
to be orthogonal; a virtual keyword can typically present a full
keyboard or just a keypad

HTH,

Dom

1. http://dev.w3.org/2006/webapi/WebIDL/#idl-nullable-type
Received on Wednesday, 26 May 2010 12:38:00 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Wednesday, 9 May 2012 00:14:09 GMT