W3C home > Mailing lists > Public > public-script-coord@w3.org > January to March 2012

Re: [WebIDL] Simplify callbacks

From: Olli Pettay <Olli.Pettay@helsinki.fi>
Date: Fri, 17 Feb 2012 01:20:54 +0200
Message-ID: <4F3D8F56.9040907@helsinki.fi>
To: Cameron McCormack <cam@mcc.id.au>
CC: Jonas Sicking <jonas@sicking.cc>, Ian Hickson <ian@hixie.ch>, Alex Russell <slightlyoff@google.com>, "public-script-coord@w3.org" <public-script-coord@w3.org>, Anne van Kesteren <annevk@opera.com>
I had missed this email, and misinterpret your previous email which had
several definitions for (c).
I prefer (c), but the first one
"accept functions and objects with a descriptive function name "
So when you said "But for me based on the above I prefer (c). "
I thought I agree with you. But I guess that is not the case. :(


-Olli


On 12/28/2011 08:16 AM, Cameron McCormack wrote:
> Cameron McCormack:
>> People will weight the pros and cons differently, I imagine. But for me
>> based on the above I prefer (c).
>
> Based on that, I have changed the spec in this direction so that we move
> towards accepting Function objects rather than Function objects or plain
> objects with properties of particular names.
>
> I've incorporated a variation of the "callback" proposal (just the
> single function version) from
> http://www.w3.org/mid/4EE7F7F7.9080600@mcc.id.au without the function
> identifier, and this is what specification authors are now recommended
> to use in place of:
>
> [Callback,NoInterfaceObject]
> interface Blah {
> ...
> };
>
> For new APIs (and older ones that don't support the property style), you
> would write for example:
>
> callback CheeseHasArrivedNotification = void (DOMString cheeseType);
>
> interface CheeseManager {
> void requestAsyncCheese(CheeseHasArrivedNotification n);
> };
>
> and requestAsyncCheese would take only a Function object.
>
> [Callback] is now gone altogether, and for the cases where we do need to
> support a callback object with a property, or any other cases that would
> currently be handled by [Callback], you define a callback interface. For
> EventListener, since we need it to continue to support objects with a
> handleEvent property, we would write:
>
> callback interface EventListener {
> void handleEvent(Event evt);
> };
>
> with no need for [NoInterfaceObject] since callback interface don't
> cause interface objects to exist normally.
>
> http://dev.w3.org/cvsweb/2006/webapi/WebIDL/Overview.xml.diff?r1=1.432;r2=1.433;f=h
>
>
> Anne (being the original commentor), I'll assume you are OK with this
> change unless I hear otherwise.
>
> Thanks,
>
> Cameron
>
>
Received on Thursday, 16 February 2012 23:22:09 UTC

This archive was generated by hypermail 2.3.1 : Wednesday, 8 May 2013 19:30:05 UTC