Re: [WebIDL] Simplify callbacks

On 11/8/11 6:47 AM, Anne van Kesteren wrote:
> It seems that all callbacks use handleEvent() and we cannot change 
> that at this point I think. We should simplify callback syntax to a) 
> make IDL easier to read and b) ensure consistency throughout the 
> platform.
>
> addEventListener(DOMString type, Callback(Event)? listener, optional 
> boolean capture)
>
>
How about Callback means [Callback=FunctionOnly].  I.e.: you have to 
pass a function.  New interfaces could use this.

And EventCallback means [Callback] EventListener.  I.e. you can pass a 
function or any object with a handleEvent() method.  Legacy APIs (and 
new Event apis) can use that.

Some other thoughts:

- If these are going to be parameterized with the argument type, it 
seems like the WebIDL precedent is angle brackets as in sequence<DOMString>.

- If parameterized, will multiple arguments be supported?  What about 
return values? Seems to me that that requires a lot of new specification 
in WebIDL and new functionality to add to IDL parsing tools, etc.

- If these are going to be types defined by WebIDL itself, precedent is 
that they should start with a lowercase letter or be prefixed with DOM.  
(Hmm. "callback" could be the function only version and "DOMCallback" 
could be the legacy version that supports handleEvent() methods...)

     David

Received on Tuesday, 8 November 2011 20:23:44 UTC