- From: Charles Pritchard <chuck@jumis.com>
- Date: Wed, 28 Mar 2012 19:04:06 -0700
- To: Greg Billock <gbillock@google.com>
- Cc: WebIntents <public-web-intents@w3.org>
It's certainly in vogue.
I prefer to have both methods. The direction of the HTML editor and assist is definitely to go solely with dictionary notation. I just find it to be verbose at times.
On Mar 28, 2012, at 4:50 PM, Greg Billock <gbillock@google.com> wrote:
> Hi everyone!
>
> I'll be sending several emails in the next few days following up to
> discussions we had at the F2F meeting. One proposal is adding an
> object literal constructor for the Intent object. This object literal
> will be convenient for adding other types of constructor arguments
> which we know we will want (defaults, explicit intents, perhaps even
> more exotic varieties to be discovered later).
>
> My proposal is to replace the existing signature with the object
> literal constructor.
>
> Current:
>
> [Constructor(in string action, in string type, in optional any data,
> in optional sequence<Transferable> transferList, in optional
> dictionary<string> extraData) raises DOMException]
> interface Intent {
> readonly attribute DOMString action;
> readonly attribute DOMString type;
> readonly attribute any data;
> readonly attribute MessagePort[] ports;
> string getExtra (DOMString key);
> void postResult (any data, optional sequence);
> void postFailure (any data);
> };
>
>
> Proposed change:
>
> dictionary IntentParameters {
> DOMString action;
> DOMString type;
> any data;
> sequence<Transferable> transfer;
> dictionary<string> extras;
> }
>
> [Constructor(in IntentParameters parameters)]
> interface Intent {
> readonly attribute DOMString action;
> readonly attribute DOMString type;
> readonly attribute any data;
> readonly attribute MessagePort[] ports;
> string getExtra (DOMString key);
> void postResult (any data, optional sequence);
> void postFailure (any data);
> };
>
> When using the object literal constructor, the "action" and "type"
> members are required, all others are optional.
>
> (Aside to Robin: is there a convention for marking required/optional
> dictionary fields? I saw a "type? name" syntax on IndexedDB. Is that
> the standard?)
>
> The proposal removes the constructor without the object literal:
>
> [Constructor(in string action, in string type, in optional any data,
> in optional sequence<Transferable> transferList) raises DOMException]
>
> What do you think? Would it be an advantage to keep this constructor
> to keep the simple use cases simpler? The difference is this:
>
> var x = new Intent("http://webintents.org/view", "schema.org/Person", person);
> vs
> var x = new Intent({"action":"http://webintents.org/view",
> "type":"schema.org/Person",
> "data":person});
>
> Is the shorter first form worth the addition of the extra constructor
> signature? Named arguments are pretty nice...
>
Received on Thursday, 29 March 2012 02:04:35 UTC