[Bug 21374] Clarify abort algorithm

https://www.w3.org/Bugs/Public/show_bug.cgi?id=21374

Aaron Colwell <acolwell@chromium.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |ASSIGNED
                 CC|                            |acolwell@chromium.org
           Assignee|adrianba@microsoft.com      |acolwell@chromium.org

--- Comment #2 from Aaron Colwell <acolwell@chromium.org> ---
(In reply to comment #0)
> It is not to me clear when reading the spec why the abort algorithm behaves
> differently with appendBuffer and appendStream, in particular why the "reset
> parser state algorithm" is done in step 9 and not in step 5.1 together with
> "Abort the stream append loop algorithm if it is running.".

It is done in step 9 because abort() can be called when there isn't a pending
append operation. The substeps in 5 are only run when there is an active append
operation pending.

> 
> I think this can create problems because the "reset parser state algorithm"
> calls the coded frame processing algorithm which uses the values of abort
> mode, appendWindowStart and appendWindowEnd which are reset as part of steps
> 6, 7 and 8 of the abort algorithm. So the remaining frames will not be
> appended properly.

You are partially correct. I'll move step 9 to step 6 and shift 6-8 down by
one. I believe this resolves this issue.

> down by one
> Additionally, calling the abort algorithm and resetting the parser state
> will make the segment parser loop algorithm return in particular to the
> appendBuffer algorithm (see step 11 of appendBuffer) and therefore run step
> 12, 13 and 14 (which would fire an update and a second update end event).

No. That was not the intent. The segment parser loop only returns control to
the calling algorithm in step 7. I'll rework the text so that it is clear that
the calling algorithm is also aborted if the segment parser loop algorithm is
aborted.

> 
> My suggestions would be:
> - move abort step 9 as part of 5.1
> - clarify that resetting parser state makes the segment parser loop
> algorithm return with a code that avoids running step 12, 13 and 14.

-- 
You are receiving this mail because:
You are the QA Contact for the bug.

Received on Monday, 25 March 2013 20:28:38 UTC