Re: [indexeddb] Updates to the Event Constructor to match DOM 4

On Wed, Sep 21, 2011 at 11:58 AM, Israel Hilerio <israelh@microsoft.com> wrote:
> Jonas,
>
> This is our interpretation of how we see incorporating the new Event constructor model defined in DOM 4.
>
> [Constructor(DOMString type, optional IDBVersionChangeEventInit IDBVersionChangeEventInitDict)]
> interface IDBVersionChangeEvent : Event {
>     readonly attribute DOMString oldVersion;
>     readonly attribute DOMString newVersion;
>     void initIDBVersionChangeEvent (DOMString typeArg, boolean canBubbleArg, boolean cancelableArg, DOMString oldVersion, DOMString newVersion);
> };
>
> dictionary IDBVersionChangeEventInit : EventInit {
>   DOMString oldVersion;
>   DOMString newVersion;
> }

Looks great apart from needing to remove the init function as Anne points out.

> We'll need to add a step between 3 and 4 to section 4.12 and a note:
> 3.5 After dispatching the event, if the event was not cancelled and allowed to bubble, then dispatch an ErrorEvent with the type set to "error" to the Window.

You don't need to state "and allowed to bubble", all events dispatched
by this algorithm bubble as per step 3.

> NOTE: When constructing an IDBVersionChangeEvent you need to follow the same steps defined in DOM4 Section 4.3 Constructing events.  In addition, setting the onerror event handler with window.addEventListener will return the ErrorEvent.  However, setting the onerror event handler with window.onerror will return three arguments as specified in HTML5 spec: event, source, and lineno [1].

I agree with Anne, this language is confusing. Dispatch of the onerror
handler is handled by the HTML5 so I'm not sure we need to say
anything here.

> Sample code on how to use the event constructor:
> var myDictionary = { canBubble: true, cancellable: true, oldVersion=1, newVersion=2};
> var changeEvent = new IDBVersionChangeEvent("versionchange", myDictionary);

Per [1] you should change 'canBubble' to 'bubbles'.

[1] http://dvcs.w3.org/hg/domcore/raw-file/tip/Overview.html#eventinit

/ Jonas

Received on Wednesday, 21 September 2011 21:50:40 UTC