[Bug 27980] New: [MSE] Ambiguous behaviour when running sourcebuffer.abort()

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

            Bug ID: 27980
           Summary: [MSE] Ambiguous behaviour when running
                    sourcebuffer.abort()
           Product: HTML WG
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Media Source Extensions
          Assignee: adrianba@microsoft.com
          Reporter: jyavenard@mozilla.com
        QA Contact: public-html-bugzilla@w3.org
                CC: mike@w3.org, public-html-media@w3.org

http://w3c.github.io/media-source/#widl-SourceBuffer-abort-void
as of 2015-02-08

3.2 Methods: abort() states

"If the updating attribute equals true, then run the following steps:

    Abort the buffer append and stream append loop algorithms if they are
running.
    Set the updating attribute to false.
    Queue a task to fire a simple event named abort at this SourceBuffer
object.
    Queue a task to fire a simple event named updateend at this SourceBuffer
object.
"

So abort() should abort buffer append and stream append loop algorithm

However:
3.4 Event Summary
we have:
"The append or remove was aborted by an abort() call. updating transitions from
true to false."

So here, abort() can abort the remove() operation.

Now, there's an ambiguous case.

What needs to be done when you do something like:
mediasource.duration = X
sourceBuffer.abort()

setting mediasource.duration is to run the range remove algorithm which will
fire updatestart then later update/updateend

abort() is to fire abort/updateend

If we follow the spec to the letter, and abort doesn't abort then range removal
algorithm.

We should have then:
updatestart
abort
updateend

and once range removal algorithm gets to run:
update
updateend

Chrome fires:
updatestart
abort
updateend

IE11:
updatestart
update
updateend

For both browsers, range removal algorithm has been run and the sourcebuffer
buffered range is now { 0 , 5 }

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Received on Sunday, 8 February 2015 10:07:03 UTC