On Tue, March 30, 2010 at 2:53 AM, Jeremy Orlow wrote:

>> On Tue, Mar 30, 2010 at 9:10 AM, Pablo Castro <pablo.cas...@microsoft.com> 
>> wrote:
>> Sorry for having disappeared for a while, "odata" was keeping me busy. I 
>> agree with all the clarifications listed in this thread that are required, 
>> so I won't redundantly mark each with "same here", but I have a few comments 
>> on one or two of them below.

>> On Mon, Mar 15, 2010 at 8:14 AM, Jeremy Orlow wrote:

>> On Sat, Mar 13, 2010 at 9:02 AM, Nikunj Mehta <nik...@o-micron.com> wrote:
>> Thanks for your patience. Most questions below don't seem to need new spec 
>> text.

>> On Feb 18, 2010, at 9:08 AM, Jeremy Orlow wrote:

>> >> 1) Structured clone is going to change over time.  And, realistically, 
>> >> UAs won't support every type right away anyway.  What do we do when a 
>> >> value is inserted that we do not support?

>> >> We will evolve the text as and when the same evolves in WebStorage.

>> >> I don't know of any implementations which have moved away from only 
>> >> allowing strings within WebStorage.  I suspect that not 
>> >> fully supporting the structured clone algorithm as specced is one of the 
>> >> reasons for this.

>> >> As far as I can tell, you're essentially saying that fully supporting the 
>> >> the structured clone algorithm a pre-req for IndexedDB?  I guess I can't 
>> >> argue too much with that, but I'm not sure how realistic it is.  I know 
>> >> we only half support it at the moment in Chromium.
I have the same worry about structured clones...it's right in principle but I 
can't see implementations converging and that will just hurt interoperability. 
Unfortunately there doesn't seem to be a well-known middle-ground. JSON is way 
too restrictive (e.g. no Date). Should we consider defining a subset of 
structured clones that work (maybe something like Javascript primitives plus 
Date plus whatever extra we feel we should include such as perhaps File 
objects)?

>> There is some precedent for what you suggest: the spec for LocalStorage 
>> already specifies that storing ImageData isn't allowed.  
>> (http://dev.w3.org/html5/webstorage/#the-storage-interface see setItem 
>> section.)

>> On the other hand, I'm not sure I like the idea of each API supporting 
>> different subsets of the structured clone algorithm.  Even if all UAs 
>> support the same subset for each API, it still seems fairly confusing to web 
>> developers.  And I'm guessing that UAs won't be to keen on adding more 
>> complex control flow to their structured clone implementations to disallow 
>> different parts of the algorithm based on what it's using.  Thus any specced 
>> subset of the algorithm will probably need to be a MAY not a MUST.

>> I still think we should spec an error to be returned when the UA doesn't 
>> fully support the structured clone algorithm and thus can't handle the data 
>> provided.  I agree it's sub-optimal, but I think it's the pragmatic choice.  
>> Especially if the structured clone algorithm ever changes (and thus 
>> implementations can fall out of compliance with the spec).

I agree with that concern, but I also worry that we'll end up with UAs 
implementing different subsets and then developers having to settle for the 
minimum common denominator or doing a bunch of guess work. May be we use 
structured clone but have some non-normative text that recommends reasonable 
subset that we can agree are something we can all implement consistently?

-pablo


Reply via email to