- From: Jeremy Orlow <jorlow@chromium.org>
- Date: Tue, 24 Aug 2010 20:06:12 +0100
- To: Jonas Sicking <jonas@sicking.cc>
- Cc: public-webapps WG <public-webapps@w3.org>
- Message-ID: <AANLkTikf3viYQxjqJS3MG56UvraWDYHgt-6U0nM9GkaA@mail.gmail.com>
On Tue, Aug 24, 2010 at 7:34 PM, Jonas Sicking <jonas@sicking.cc> wrote: > On Tue, Aug 24, 2010 at 10:30 AM, Jeremy Orlow <jorlow@chromium.org> > wrote: > > Last we spoke about constants in IndexedDB, (like IDBKeyRange.LEFT_BOUND) > I > > believe we had decided that all the objects with constants would have an > > interface object hanging off of window so it's possible to simply say > > "IDBKeyRange.LEFT_BOUND" within JavaScript. What happens when someone > tries > > something like the following JS: |IDBCursor.continue()|? Given that > we're > > using an interface object, I'd assume we throw some sort of exception or > > something? I tried to figure out the answer in the WebIDL spec (I > imagine > > it's somewhere around > > here http://dev.w3.org/2006/webapi/WebIDL/#dfn-interface-object) but > it's a > > lot to wade through. Any advice would be great. > > I definitely think we should handle this the same way that all other > interfaces does it. I.e. the same way that > window.Node.appendChild(...) does it. In the Firefox implementation we > just fall back to using our generic code for all this stuff, so > nothing special goes on in the IndexedDB implementation. > > And yes, I think WebIDL should be the one defining what should happen. > If it doesn't already someone should file a bug :) > OK, I'll look at our implementation of Node.appendChild and try to reverse engineer it from that. Because, as I mentioned, I have no idea what part of WebIDL specifies the behavior. :-) > Also, the spec still has "[NoInterfaceObject]" for a lot of the > interfaces. > > I believe Nikunj did this by accident and was supposed to revert, but I > > guess he didn't? I should file a bug to get these removed, right? > > Please do. > > > Another question: Right now all the error constants are on > > IDBDatabaseException which is an exception rather than an interface. Is > > this allowed? And even if so, should we put them on IDBDatabaseError > > instead, given that it's the class people will be using more often (with > the > > async interface)? Or maybe we should duplicate the constants in both > > places? It just feels weird to me that I keep reaching into > > IDBDatabaseException for these constants. > > Exception stuff has always confused me, but I think this is how idl > elsewhere does it. > > / Jonas >
Received on Tuesday, 24 August 2010 19:07:04 UTC