On Wed, Feb 29, 2012 at 1:43 PM, Arun Ranganathan
<[email protected]> wrote:
> FileReader.abort is like a bad penny :)
>
>
>>
>> However, I'm not sure it quite matches the normative text in one
>> respect. Where you say [8.5.6 step 4]: "Terminate any steps while
>> processing a read method." Does that also terminate the steps
>> associated with an abort that terminated the read method? Basically
>> I'm not sure what "steps while processing a read method" means.
>
> I've changed this to terminate only the read algorithm (and hopefully it is
> clear this isn't the same as the abort steps):
>
> http://dev.w3.org/2006/webapi/FileAPI/#terminate-an-algorithm and
>
>
>
>>
>> Otherwise, if you start a new read in onabort [8.5.6 step 5], you'll
>> still deliver the loadend [8.5.6 step 6].
>> This contradicts 8.5.9.2.1 "Once a loadstart has been fired, a
>> corresponding loadend fires at completion of the read, EXCEPT if the
>> read method has been cancelled using abort() and a new read method
>> has
>> been invoked."
>
> This seems like familiar ground, and I'm sorry this contradiction still
> exists.
>
> So we could:
>
> 1. Say not to fire a loadend if onloadend or onabort re-initiate a read. But
> this may be odd in terms of analyzing a program before.
>
> 2. Simply not fire loadend on abort. I'm not sure this is a good idea.
>
> What's your counsel? Have I missed something easier?
>
> -- A*
My email must have crossed yours mid-flight, but just in case, how
about speccing that read* methods terminate the abort algorithm?
That's what XHR2 does, and it looks like it works. It's not the
easiest thing to figure out when reading the spec. It took me a while
to get my mind around it in XHR2, but then that's a much more
complicated spec. FileReader's small enough that I think it's not
unreasonable, and of course matching XHR2 means fewer surprises all
around.
Eric