[widgets] TWI: comments

Hi all,

While trying to implement the widget interface spec [1], I found two typos:
- "a user agent can to support" => "a user agent can support"
- missing closing parenthese "in conjunction to the preferences attribute)".

I have also some remarks/questions:

* "A user agent whose start file implements [HTML5]'s Window  interface MUST ..."
The start file does not implement anything. The user agent implements. I suggest to change it to something like:
"User agent implementing the [HTML5]'s Window interface MUST ..."

* Section 5. is called "Widget Interface" but it starts by saying "The widget object provides ...". It think it should say "Objects implementing the widget interface provide ..."

* The step 1 in the initialization of the preference attribute algorithm which says "Establish the instance of a widget for this widget and create a storage area that is unique for the origin." should probably say "unique for the origin and for that instance."

* The spec says:
"When an object implementing the Widget interface is instantiated, if a user agent has not previously associated a storage area with the instance of a widget, then the user agent must initialize the preferences attribute."
What happens if the UA has already associated a storage area ? It should probably say that no initialization of the preferences attribute is made but the associated storage area can be used using the Storage interface, no ?

*In case two instances of the same widget package are loaded, modified (e.g. weather in Paris and in New York) and then closed, how does the UA retrieve the associated storage area when one is reloaded ? I don't think it can be specified but I think you should probably add a note saying that it is implementation specific, for example by asking the user what previous instance it want to start first.

* What happens to the "storage" event fired by the setItem or removeItem methods when the UA does not implement the window object ?

* What is the return value for the openURL method when there is a scheme handler associate to the IRI ? When there is none, the text says the method returns void. I think it also returns void so I wonder what's the point of the paragraph.

* The IDL spec indicates that the preference attribute implements the Storage interface, but I can't find a 'real' sentence saying it. I find:
"Note: A user agent can  support the Storage interface on DOM attributes other than the preferences attribute (e.g., a user agent can to support the [WebStorage]  specification's localStorage attribute of the window object in conjunction to the preferences attribute)" but this is a note, hence not normative.

"Return the Storage  object associated with that widget instance's preferences attribute." but that's not really explicit.

"Implement the Storage  interface on the storage area, and make the preferences attribute a pointer to that storage area." but this isn't as clear as "The UA MUST support the Storage interface on the preferences attribute" or similar...

I suggest that you add an additional sentence. Also, the given example is not really clear because it does not show the relationship between a config.xml document with preference elements and the associated script and storage.

Finally, can you clarify if the usage of getItem / setItem such as in widget.preferences.getItem('foo'); and widget.preferences.setItem('foo', 'dahut'); is allowed or if only the brackets notation (widget.preferences['foo']) is allowed. Maybe by adding an example ?

Regards,
Cyril

[1] http://www.w3.org/TR/2009/CR-widgets-apis-20091222/
-- 
Cyril Concolato
Maître de Conférences/Associate Professor
Groupe Mutimedia/Multimedia Group
Telecom ParisTech
46 rue Barrault
75 013 Paris, France
http://concolato.blog.telecom-paristech.fr/widgets/

Received on Thursday, 4 February 2010 21:19:31 UTC