Re: [widgets] Does anyone still care about Widget Updates?

2013-05-20 Thread Scott Wilson

On 14 May 2013, at 15:00, Marcos Caceres wrote:

 
 
 On Tuesday, 14 May 2013 at 14:32, Arthur Barstow wrote:
 
 Scott indicated [1] Wookie implemented Widget Updates and Chaals 
 indicated [2] he would followup with Opera but I couldn't find a 
 response from them in the list archive.
 
 Do we have two (complete?) implementations of the spec? Opera, Richard?
 
 It's not clear to me if we should drop this spec (i.e. publish as a WG 
 Note) or if there are sufficient resource commitments to continue to 
 advance it along the REC track.
 
 Marcos - what is the status of the test suite 
 http://dev.w3.org/2006/waf/widgets-updates/test-suite/? (The 
 Implementation Report doesn't look good 
 http://dev.w3.org/2006/waf/widgets-updates/imp-report/.)
 
 -AB
 
 [1] 
 http://lists.w3.org/Archives/Public/public-webapps/2012OctDec/0256.html
 [2] 
 http://lists.w3.org/Archives/Public/public-webapps/2012OctDec/0261.html
 
 
 Unless someone else wants to take this, I suggest we just publish as a note. 

Well, we implemented it and it works, but I'd be fine with it being published 
as a Note.

 
 
 --
 Marcos Caceres
 
 
 
 
 



PGP.sig
Description: This is a digitally signed message part


Re: [IndexedDB] request feedback on IDBKeyRange.inList([]) enhancement

2013-05-20 Thread Ben Kelly
Thanks for the feedback!

On May 19, 2013, at 9:25 PM, Kyaw Tun kyaw...@yathit.com wrote:
 IDBKeyRange.inList looks practically useful, but it can be achieve continue 
 (continuePrimary) cursor iteration. Performance will be comparable except 
 multiple round trip between js and database.

I'm sorry, but I don't understand this bit.  How do you envision getting the 
cursor in the first place here without a way to form a query based on an 
arbitrary key list?  I'm sure I'm just missing an obvious part of the API here.

 Querying by parallel multiple get in a single transaction should also be fast 
 as well. 

Yes, Jonas Sicking did recommend a possible optimization for the multiple get() 
within a transaction.  It would seem to me, however, that this will likely 
impose some cost on the general single get() case.  It would be nice if the 
client had the ability to be explicit about their use case vs using a heuristic 
to infer it.

In any case, I plan to prototype this in the next week or two.

 Additionally IDBKeyRange.inList violate contiguous key range nature of 
 IDBKeyRange. It is assumed in some use case, like checking a key in the key 
 range or not. If this feature are to be implemented, it should not mess with 
 IDBKeyRange, but directly handle by index batch request.

Good point.  I suppose an IDBKeySet or IDBKeyList type could be added.

 Ignoring deplicating keys is not a useful feature in query. In fact, I will 
 like result be respective ordering of given key list.

Well, I would prefer to respect ordering as well.  I just assumed that people 
would prefer not to impose that on all calls.  Perhaps the cases could be 
separated:

  IDBKeyList.inList([]) // unordered
  IDBKeyList.inOrderedList([])  // ordered

I would be happy to include duplicate keys as well.

Thanks again.

Ben




Re: A very preliminary draft of a URL spec

2013-05-20 Thread Melvin Carvalho
On 13 May 2013 05:34, Charles McCathie Nevile cha...@yandex-team.ru wrote:

 Hi,

 to close ACTION-693 I scribbled some stuff into a very preliminary draft
 of a URL spec:
 https://dvcs.w3.org/hg/**webapps/raw-file/81f24bfc5970/**url/url.htmlhttps://dvcs.w3.org/hg/webapps/raw-file/81f24bfc5970/url/url.html
 

 In the end I didn't copy Anne's spec beyond believeing him about some
 Unicode points when I was offline.

 So far I have done nothing at all about an API, and am waiting for some
 formal confirmation from people who implement stuff that they would like to
 standardise an API for dealing with URLs. It seems to be a common task,
 judging from the number of people who seem to have some scrap of code lying
 around for it, so I expect to hear people say Yes, great idea - although
 I have been surprised before.

 As the more astute (read  people who look at the spec for a few seconds
 with at least some level of attention) will notice, this needs work. I
 would be very pleased to receive comments that help clarify things the spec
 gets wrong, doesn't specify, or doesn't explain clearly.

 I hope there will be a bugzilla component really very soon, but I
 neglected to request one so far. If Mike happens to be reading, I'd be
 grateful for him to do the magic before I get around to writing the
 request. In the meantime I guess you should just reply to the thread...

 And no, it doesn't use futures. Sorry. At some point I will come back with
 the answer to a request for a way to change that.


+1 Chaals, I welcome this effort

It's tempting (especially on the whatwg ML) to think that the browser is
the web.  But the URL is used in many contexts in and outside the browser.

Please do post the link to the issue tracker when it's up, and hopefully a
some of us on WHATGW can help you and Anne in creating a stable and up to
date home for this important work.



 cheers

 Chaals

 --
 Charles McCathie Nevile - Consultant (web standards) CTO Office, Yandex
   cha...@yandex-team.ru Find more at http://yandex.com




Re: A very preliminary draft of a URL spec

2013-05-20 Thread Arthur Barstow

On 5/20/13 12:54 PM, ext Melvin Carvalho wrote:
On 13 May 2013 05:34, Charles McCathie Nevile cha...@yandex-team.ru 
mailto:cha...@yandex-team.ru wrote:



I hope there will be a bugzilla component really very soon, but I
neglected to request one so far.

Please do post the link to the issue tracker when it's up, and 
hopefully a some of us on WHATGW can help you and Anne in creating a 
stable and up to date home for this important work.


The URL spec's bugzilla component is 
https://www.w3.org/Bugs/Public/buglist.cgi?product=WebAppsWGcomponent=URL






Re: [IndexedDB] request feedback on IDBKeyRange.inList([]) enhancement

2013-05-20 Thread Joshua Bell
On Mon, May 20, 2013 at 6:37 AM, Ben Kelly bke...@mozilla.com wrote:

 Thanks for the feedback!

 On May 19, 2013, at 9:25 PM, Kyaw Tun kyaw...@yathit.com wrote:
  IDBKeyRange.inList looks practically useful, but it can be achieve
 continue (continuePrimary) cursor iteration. Performance will be comparable
 except multiple round trip between js and database.

 I'm sorry, but I don't understand this bit.  How do you envision getting
 the cursor in the first place here without a way to form a query based on
 an arbitrary key list?  I'm sure I'm just missing an obvious part of the
 API here.


Here's an example I whipped up:

https://gist.github.com/inexorabletash/5613707



  Querying by parallel multiple get in a single transaction should also be
 fast as well.

 Yes, Jonas Sicking did recommend a possible optimization for the multiple
 get() within a transaction.  It would seem to me, however, that this will
 likely impose some cost on the general single get() case.  It would be nice
 if the client had the ability to be explicit about their use case vs using
 a heuristic to infer it.

 In any case, I plan to prototype this in the next week or two.


Thanks for taking this on - we'll be watching your implementation
experience closely. :)

Some discussion here: https://www.w3.org/Bugs/Public/show_bug.cgi?id=16595

(That also links to a very raw document with other IDB v2 thoughts c/o a
very informal google/moz brainstorming session.)

One approach that adds generally useful primitives to IDB is (1) something
akin to a key range that is a list of keys (per above) and (2) batch
cursors that deliver up to N values at a time. Either of those is quite
useful independently.



  Additionally IDBKeyRange.inList violate contiguous key range nature of
 IDBKeyRange. It is assumed in some use case, like checking a key in the key
 range or not. If this feature are to be implemented, it should not mess
 with IDBKeyRange, but directly handle by index batch request.

 Good point.  I suppose an IDBKeySet or IDBKeyList type could be added.


I'm not entirely convinced that's necessary. I don't believe we expose is
in range in the platform currently, so exposing a new type to script seems
excessive. On the other hand, range is a pretty well defined concept in
general so it would be a shame to break it.



  Ignoring deplicating keys is not a useful feature in query. In fact, I
 will like result be respective ordering of given key list.

 Well, I would prefer to respect ordering as well.  I just assumed that
 people would prefer not to impose that on all calls.  Perhaps the cases
 could be separated:

   IDBKeyList.inList([]) // unordered
   IDBKeyList.inOrderedList([])  // ordered

 I would be happy to include duplicate keys as well.

 Thanks again.

 Ben





Re: [IndexedDB] IDBRequest.onerror for DataCloneError and DataError

2013-05-20 Thread Joshua Bell
On Sun, May 19, 2013 at 6:37 PM, Kyaw Tun kyaw...@yathit.com wrote:

 Sorry for reposting again for
 http://lists.w3.org/Archives/Public/public-webapps/2013AprJun/0422.html 
 Perhaps
 I am not well explain enough.

 In put and add method of object store and index, DataCloneError and
 DataError are immediately throw before executing IDBRequest. It seems good
 that exception are throw immediately, but in practical use case, these
 exception are in async workflow (inside transaction callback). Exception
 break the async workflow, (of course, it depending on usage design
 pattern).

 DataCloneError and DataError are preventable in most situation. But
 sometimes tricky. We even want database to handle these errors like
 database constraint. The logic will be much simpler if DataCloneError and
 DataError cause to invoke IDBRequest.onerror rather than exception.


I can see where this might be desirable if arbitrary data is being used for
values - for example, the key path yields an invalid key, or the value
contains a non-cloneable member.

From an implementation perspective, both must occur synchronously. The
clone operation needs to determine the key and serialize the object at the
time the call is made, otherwise the object could change. (As an
implementation detail in Chrome at least, the data is thrown into another
process when the call is made so it needs to be serialized anyway.)

I seem to recall some discussion late last year about trying to make
serialization asynchronous, to avoid main thread jank when passing data to
Workers. The response was to make things transferable instead of
serializing them. I can imagine an API where e.g. you could pass in a Typed
Array and rather than being serialized synchronously it would have
ownership transferred instead, then be serialized asynchronously but
you'd still need to verify that the object was transferable up front so I'm
not sure you'd gain anything in the error case.


Re: CfC: Shelve Web Intents, Web Intents Addendum, Pick Media Intent, Pick Contacts Intent, respond by 17 May (next Friday) (resend)

2013-05-20 Thread Frederick.Hirsch
This CfC has completed with support for shelving the Web Intents Addendum, Pick 
Media Intent, and Pick Contacts Intent specifications.

Based on the CfC mail discussion (and DAP teleconference) we have also agreed  
to publish Web Intents as a W3C WG Note to complete work (for now).

As with all shelving (and Notes) the WG may decide to resume this work at any 
time with the current or a revised approach. 

Thanks to Jungkee for adding a note to the Pick Media Intent and Pick Contacts 
Intent specifications to mark them as shelved.  I have done the same for the 
Web Intents Addendum.

I have also  updated the DAP home page to note that Web Intents Addendum, Pick 
Media Intent, and Pick Contacts Intent  are shelved.

We will go ahead to arrange the publication of Web Intents as a W3C Note and 
then I will update the DAP page accordingly.

Thanks

regards, Frederick

Frederick Hirsch, Nokia
Chair, W3C DAP Working Group





On May 8, 2013, at 4:00 PM, Hirsch Frederick (Nokia-CIC/Boston) wrote:

 (resend to include Web Intents TF list and WebApps list for shelving Web 
 Intents spec, as well as DAP for all of specs)
 
 ---
 
 This is a Call for Consensus (CfC) to shelve the Web Intents, Web Intents 
 Addendum, Pick Media Intent, and Pick Contacts Intent specifications (4 
 specs).
 
 Shelving in this case means that we are not sure the specifications will 
 advance along the lines the drafts indicate. As a result we want to be clear 
 to everyone that we may not advance the specifications or that we may change 
 the approach.  This does not mean that we have decided not to advance them, 
 just that there is a question as to the direction and/or progression at this 
 point. 
 
 In order to advance this work we need support for the underlying technology, 
 which we have been assuming will be a combination of Web Intents and Web 
 Activities. This will require some sharing of proposals on the public list to 
 enable progress. It would be best if we can progress this on the public list 
 by September, so that we can have a meaningful result on the topic at a TPAC 
 F2F.
 
 If we have consensus to shelve the documents, this will have the following 
 immediate consequences:
 
 1. The editors will edit each document to add a warning statement before the 
 abstract.
 
 I suggest we use the following text (feel free to make suggestions):
 
 The Device APIs Working Group is currently not progressing the approach 
 outlined in this draft. Please treat this document with caution and do not 
 reference it or use it as the basis for implementation. The domain covered by 
 this document is still within the scope of the Working Group as defined in 
 its Charter. The Working Group may resume this work or adopt an alternative 
 approach depending on the interest of WG members and implementers.
 
 2. On the DAP home page we will move the specifications from the active 
 roadmap [1]  to the list of shelved specifications [2].
 
 I suggest we keep both the links to the latest published draft and editors 
 draft available when we do this. (I can volunteer to make this update if we 
 agree to this CfC).
 
 Please send all comments regarding this CfC to the public-device-a...@w3.org 
 mail list by 17 May (next Friday).   Silence will be considered as agreement 
 with the proposal. If you support this CfC, a positive response is preferred 
 and encouraged, even if a +1.
 
 Obviously any constructive work on the list regarding the underlying 
 technology would also be welcome.
 
 Thanks
 
 regards, Frederick
 
 Frederick Hirsch, Nokia
 Chair, W3C DAP Working Group
 
 
 [1] http://www.w3.org/2009/dap/#roadmap
 
 [2] http://www.w3.org/2009/dap/#shelved
 
 
 
 




Re: [IndexedDB] request feedback on IDBKeyRange.inList([]) enhancement

2013-05-20 Thread Ben Kelly
On May 20, 2013, at 1:39 PM, Joshua Bell jsb...@google.com wrote:
 On Mon, May 20, 2013 at 6:37 AM, Ben Kelly bke...@mozilla.com wrote:
 On May 19, 2013, at 9:25 PM, Kyaw Tun kyaw...@yathit.com wrote:
  IDBKeyRange.inList looks practically useful, but it can be achieve continue 
  (continuePrimary) cursor iteration. Performance will be comparable except 
  multiple round trip between js and database.
 
 I'm sorry, but I don't understand this bit.  How do you envision getting the 
 cursor in the first place here without a way to form a query based on an 
 arbitrary key list?  I'm sure I'm just missing an obvious part of the API 
 here.
 
 
 Here's an example I whipped up:
 
 https://gist.github.com/inexorabletash/5613707

Thanks!  Yes, I totally missed you could pass the next desired key to 
continue().

Unfortunately I don't think this approach would help much with the use case I 
am looking at.  The round trips are significant and add up on this mobile 
platform.  Also, it appears this would lose any parallelism from issuing 
multiple get() requests simultaneously.

  Querying by parallel multiple get in a single transaction should also be 
  fast as well.
 
 Yes, Jonas Sicking did recommend a possible optimization for the multiple 
 get() within a transaction.  It would seem to me, however, that this will 
 likely impose some cost on the general single get() case.  It would be nice 
 if the client had the ability to be explicit about their use case vs using a 
 heuristic to infer it.
 
 In any case, I plan to prototype this in the next week or two.
 
 Thanks for taking this on - we'll be watching your implementation experience 
 closely. :)
 
 Some discussion here: https://www.w3.org/Bugs/Public/show_bug.cgi?id=16595
 
 (That also links to a very raw document with other IDB v2 thoughts c/o a 
 very informal google/moz brainstorming session.)
 
 One approach that adds generally useful primitives to IDB is (1) something 
 akin to a key range that is a list of keys (per above) and (2) batch cursors 
 that deliver up to N values at a time. Either of those is quite useful 
 independently.

The batch cursors do look useful.  I had not run into that need yet since I am 
actually working with our prefixed getAll() implementation.


  Additionally IDBKeyRange.inList violate contiguous key range nature of 
  IDBKeyRange. It is assumed in some use case, like checking a key in the key 
  range or not. If this feature are to be implemented, it should not mess 
  with IDBKeyRange, but directly handle by index batch request.
 
 Good point.  I suppose an IDBKeySet or IDBKeyList type could be added.
 
 I'm not entirely convinced that's necessary. I don't believe we expose is in 
 range in the platform currently, so exposing a new type to script seems 
 excessive. On the other hand, range is a pretty well defined concept in 
 general so it would be a shame to break it.

I don't have a preference one way or another.  I'm happy to implement a new 
type or not as long we can make non-consecutive key queries fast.

Thanks again.  I'll post back when I have the multi-get optimization prototyped 
out.

Ben

  
 
  Ignoring deplicating keys is not a useful feature in query. In fact, I will 
  like result be respective ordering of given key list.
 
 Well, I would prefer to respect ordering as well.  I just assumed that people 
 would prefer not to impose that on all calls.  Perhaps the cases could be 
 separated:
 
   IDBKeyList.inList([]) // unordered
   IDBKeyList.inOrderedList([])  // ordered
 
 I would be happy to include duplicate keys as well.
 
 Thanks again.
 
 Ben
 
 
 




Re: [IndexedDB] request feedback on IDBKeyRange.inList([]) enhancement

2013-05-20 Thread Joshua Bell
On Mon, May 20, 2013 at 12:08 PM, Ben Kelly bke...@mozilla.com wrote:

 On May 20, 2013, at 1:39 PM, Joshua Bell jsb...@google.com wrote:
  On Mon, May 20, 2013 at 6:37 AM, Ben Kelly bke...@mozilla.com wrote:
  On May 19, 2013, at 9:25 PM, Kyaw Tun kyaw...@yathit.com wrote:
   IDBKeyRange.inList looks practically useful, but it can be achieve
 continue (continuePrimary) cursor iteration. Performance will be comparable
 except multiple round trip between js and database.
 
  I'm sorry, but I don't understand this bit.  How do you envision getting
 the cursor in the first place here without a way to form a query based on
 an arbitrary key list?  I'm sure I'm just missing an obvious part of the
 API here.
 
 
  Here's an example I whipped up:
 
  https://gist.github.com/inexorabletash/5613707

 Thanks!  Yes, I totally missed you could pass the next desired key to
 continue().

 Unfortunately I don't think this approach would help much with the use
 case I am looking at.  The round trips are significant and add up on this
 mobile platform.  Also, it appears this would lose any parallelism from
 issuing multiple get() requests simultaneously.


Yep - which is what Kyaw mentioned above. (Performance will be
comparable...). Just pointing it out for completeness.



   Querying by parallel multiple get in a single transaction should also
 be fast as well.
 
  Yes, Jonas Sicking did recommend a possible optimization for the
 multiple get() within a transaction.  It would seem to me, however, that
 this will likely impose some cost on the general single get() case.  It
 would be nice if the client had the ability to be explicit about their use
 case vs using a heuristic to infer it.
 
  In any case, I plan to prototype this in the next week or two.
 
  Thanks for taking this on - we'll be watching your implementation
 experience closely. :)
 
  Some discussion here:
 https://www.w3.org/Bugs/Public/show_bug.cgi?id=16595
 
  (That also links to a very raw document with other IDB v2 thoughts c/o
 a very informal google/moz brainstorming session.)
 
  One approach that adds generally useful primitives to IDB is (1)
 something akin to a key range that is a list of keys (per above) and (2)
 batch cursors that deliver up to N values at a time. Either of those is
 quite useful independently.

 The batch cursors do look useful.  I had not run into that need yet since
 I am actually working with our prefixed getAll() implementation.


   Additionally IDBKeyRange.inList violate contiguous key range nature of
 IDBKeyRange. It is assumed in some use case, like checking a key in the key
 range or not. If this feature are to be implemented, it should not mess
 with IDBKeyRange, but directly handle by index batch request.
 
  Good point.  I suppose an IDBKeySet or IDBKeyList type could be added.
 
  I'm not entirely convinced that's necessary. I don't believe we expose
 is in range in the platform currently, so exposing a new type to script
 seems excessive. On the other hand, range is a pretty well defined concept
 in general so it would be a shame to break it.

 I don't have a preference one way or another.  I'm happy to implement a
 new type or not as long we can make non-consecutive key queries fast.

 Thanks again.  I'll post back when I have the multi-get optimization
 prototyped out.


Cool. Knowing what performance difference you see between multi-get and
just a bunch of gets in parallel (for time to delivery of the last value)
will be interesting. A multi-get of any sort should avoid a bunch of
messaging overhead and excursions into script to deliver individual values,
so it will almost certainly be faster, but I wonder how significantly the
duration from first-get to last-success will differ.



 Ben

 
 
   Ignoring deplicating keys is not a useful feature in query. In fact, I
 will like result be respective ordering of given key list.
 
  Well, I would prefer to respect ordering as well.  I just assumed that
 people would prefer not to impose that on all calls.  Perhaps the cases
 could be separated:
 
IDBKeyList.inList([]) // unordered
IDBKeyList.inOrderedList([])  // ordered
 
  I would be happy to include duplicate keys as well.
 
  Thanks again.
 
  Ben
 
 
 




The JavaScript context of a custom element

2013-05-20 Thread Aaron Boodman
Hello public-webapps,

I have been following along with web components, and am really excited
about the potential.

However, I just realized that unlike the DOM and CSS, there is no real
isolation for JavaScript in a custom element. In particular, the global
scope is shared.

This seems really unfortunate to me, and limits the ability of element
authors to create robustly reusable components.

I would like to suggest that custom elements have the ability to ask for a
separate global scope for their JavaScript. This would be analogous to what
happens today when you have multiple script-connected frames on the same
origin.

Has there been any thought along these lines in the past?

Thanks,

- a


Re: The JavaScript context of a custom element

2013-05-20 Thread John J Barton
Aren't ES6 modules is a good-enough solution for this issue? They make
global collision rare and likely to be what the author really needed.

jjb


On Mon, May 20, 2013 at 1:00 PM, Aaron Boodman a...@google.com wrote:

 Hello public-webapps,

 I have been following along with web components, and am really excited
 about the potential.

 However, I just realized that unlike the DOM and CSS, there is no real
 isolation for JavaScript in a custom element. In particular, the global
 scope is shared.

 This seems really unfortunate to me, and limits the ability of element
 authors to create robustly reusable components.

 I would like to suggest that custom elements have the ability to ask for a
 separate global scope for their JavaScript. This would be analogous to what
 happens today when you have multiple script-connected frames on the same
 origin.

 Has there been any thought along these lines in the past?

 Thanks,

 - a



Re: The JavaScript context of a custom element

2013-05-20 Thread Scott Miles
Custom elements have a closure to work in, as well as their own prototypes.
I don't believe ES6 modules add much in this regard (possibly I'm missing
something there).

Separate global scope is a bigger issue.

I believe there was general agreement to pursue (at some point) an otp-in
'isolated' mode for custom elements, where each element would have it's own
global scope and access to a sealed version of the JS/DOM apis.

Scott


On Mon, May 20, 2013 at 1:26 PM, John J Barton
johnjbar...@johnjbarton.comwrote:

 Aren't ES6 modules is a good-enough solution for this issue? They make
 global collision rare and likely to be what the author really needed.

 jjb


 On Mon, May 20, 2013 at 1:00 PM, Aaron Boodman a...@google.com wrote:

 Hello public-webapps,

 I have been following along with web components, and am really excited
 about the potential.

 However, I just realized that unlike the DOM and CSS, there is no real
 isolation for JavaScript in a custom element. In particular, the global
 scope is shared.

 This seems really unfortunate to me, and limits the ability of element
 authors to create robustly reusable components.

 I would like to suggest that custom elements have the ability to ask for
 a separate global scope for their JavaScript. This would be analogous to
 what happens today when you have multiple script-connected frames on the
 same origin.

 Has there been any thought along these lines in the past?

 Thanks,

 - a





Re: [IndexedDB] request feedback on IDBKeyRange.inList([]) enhancement

2013-05-20 Thread Kyaw Tun
Sorry, I always have problem with talking clearly.

Your experiment on this kind of problem is very interesting. I would like
to see what are optimal number of requests in a given transaction. These
two concepts (cursor walk and multi-request) can be employed together.

In my library implementation (ydn-db), multi-request is so commonly useful
that I had a pattern:

var b = db.branch('multi', false); // multiple request parallel
transaction thread
b.get('store1', key1);
b.get('store1', key2); // parallel request
b.get('store2', key1); // parallel transaction
b.values('store2', keyrange1); // parallel request on second tx

On the other hand, we do not want large batch request, because it will
consume large memory. Conservation of memory is more important than CPU for
mobile.

I am excited batch query are planning in v2

index.getAll(key_range, limit)
objectStore.getAll(key_range, limit)

A lot of optimization could be done with that api.

Regarding array key or key_range query, i think it is NOT very useful.

index.getAll(array_of_key_or_key_range, limit)

because we don't know result and respective query key.

Regarding prefix query, it is not very useful. It is trivial to create a
key range of desire prefix. Additionally we will also need start marker
key (as in aws s3 api), reverse order and limit. This method will destroy
current graceful api.





On Mon, May 20, 2013 at 9:37 PM, Ben Kelly bke...@mozilla.com wrote:

 Thanks for the feedback!

 On May 19, 2013, at 9:25 PM, Kyaw Tun kyaw...@yathit.com wrote:
  IDBKeyRange.inList looks practically useful, but it can be achieve
 continue (continuePrimary) cursor iteration. Performance will be comparable
 except multiple round trip between js and database.

 I'm sorry, but I don't understand this bit.  How do you envision getting
 the cursor in the first place here without a way to form a query based on
 an arbitrary key list?  I'm sure I'm just missing an obvious part of the
 API here.

  Querying by parallel multiple get in a single transaction should also be
 fast as well.

 Yes, Jonas Sicking did recommend a possible optimization for the multiple
 get() within a transaction.  It would seem to me, however, that this will
 likely impose some cost on the general single get() case.  It would be nice
 if the client had the ability to be explicit about their use case vs using
 a heuristic to infer it.

 In any case, I plan to prototype this in the next week or two.

  Additionally IDBKeyRange.inList violate contiguous key range nature of
 IDBKeyRange. It is assumed in some use case, like checking a key in the key
 range or not. If this feature are to be implemented, it should not mess
 with IDBKeyRange, but directly handle by index batch request.

 Good point.  I suppose an IDBKeySet or IDBKeyList type could be added.

  Ignoring deplicating keys is not a useful feature in query. In fact, I
 will like result be respective ordering of given key list.

 Well, I would prefer to respect ordering as well.  I just assumed that
 people would prefer not to impose that on all calls.  Perhaps the cases
 could be separated:

   IDBKeyList.inList([]) // unordered
   IDBKeyList.inOrderedList([])  // ordered

 I would be happy to include duplicate keys as well.

 Thanks again.

 Ben