<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://www.w3.org/Bugs/Public/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4"
          urlbase="https://www.w3.org/Bugs/Public/"
          
          maintainer="sysbot+bugzilla@w3.org"
>

    <bug>
          <bug_id>20952</bug_id>
          
          <creation_ts>2013-02-11 17:07:59 +0000</creation_ts>
          <short_desc>Add an update complete event</short_desc>
          <delta_ts>2013-02-19 01:03:49 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>HTML WG</product>
          <component>Media Source Extensions</component>
          <version>unspecified</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Bateman [MSFT]">adrianba</reporter>
          <assigned_to name="Aaron Colwell (c)">acolwell</assigned_to>
          <cc>acolwell</cc>
    
    <cc>mike</cc>
    
    <cc>public-html-media</cc>
          
          <qa_contact name="HTML WG Bugzilla archive list">public-html-bugzilla</qa_contact>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>82913</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Bateman [MSFT]">adrianba</who>
    <bug_when>2013-02-11 17:07:59 +0000</bug_when>
    <thetext>We should add an update complete event (maybe &quot;update&quot;) on successful completion of append or remove that fires before updateend. This is a common pattern in Web APIs (see the Progress Events specification [1]). This is necessary because we have abort and error events that fire before updateend and, with the asynchronous nature of the API, we need an event signaling success. Without this applications must keep track of abort and error events to distinguish an updateend that occurs after one of these and an updateend that occurred because the operation completed successfully.

One situation that we found that highlights this need is from the steps in the abort() operation [2]. Consider the following: if(sb.updating) sb.abort(); Between the JavaScript checking the updating flag and calling abort() the current operation might complete. This means that step 3 of the abort operation will not fire since it is no longer updating. The updateend event will fire but the abort event will not. To avoid applications keeping track of this, we should make the following changes:

The segment parser loop [3] should add an additional step before step 9:
&quot;Queue a task to fire a simple event named update at this SourceBuffer object.&quot;

The stream append loop [4] should add an additional step before step 12:
&quot;Queue a task to fire a simple event named update at this SourceBuffer object.&quot;

The remove() method [5] should add an additional step before step 12:
&quot;Queue a task to fire a simple event named update at this SourceBuffer object.&quot;

Add the &quot;update&quot; event to the Event Summary section [6].

[1] http://www.w3.org/TR/progress-events/#suggested-names-for-events-using-the-progressevent-interface
[2] https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#widl-SourceBuffer-abort-void
[3] https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#sourcebuffer-segment-parser-loop
[4] https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#sourcebuffer-stream-append-loop
[5] https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#widl-SourceBuffer-remove-void-double-start-double-end
[6] https://dvcs.w3.org/hg/html-media/raw-file/tip/media-source/media-source.html#sourcebuffer-events</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>82917</commentid>
    <comment_count>1</comment_count>
      <attachid>1325</attachid>
    <who name="Adrian Bateman [MSFT]">adrianba</who>
    <bug_when>2013-02-11 17:49:12 +0000</bug_when>
    <thetext>Created attachment 1325
Proposed patch

Proposed patch for this change attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>83299</commentid>
    <comment_count>2</comment_count>
    <who name="Aaron Colwell (c)">acolwell</who>
    <bug_when>2013-02-19 01:03:49 +0000</bug_when>
    <thetext>Changes committed.
https://dvcs.w3.org/hg/html-media/rev/d5956e93b991

Proposed patch applied.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>1325</attachid>
            <date>2013-02-11 17:49:12 +0000</date>
            <delta_ts>2013-02-11 17:49:12 +0000</delta_ts>
            <desc>Proposed patch</desc>
            <filename>update-event.patch</filename>
            <type>text/plain</type>
            <size>4385</size>
            <attacher name="Adrian Bateman [MSFT]">adrianba</attacher>
            
              <data encoding="base64">ZGlmZiAtciA3Nzk3NWFiZWVjNDEgbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS1yZXNwZWMuaHRt
bAotLS0gYS9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc3BlYy5odG1sCVRodSBKYW4gMzEg
MTQ6MjA6NTQgMjAxMyAtMDgwMAorKysgYi9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLXJlc3Bl
Yy5odG1sCU1vbiBGZWIgMTEgMTI6NDc6MTMgMjAxMyAtMDUwMApAQCAtMSw0ICsxLDQgQEAKLTwh
RE9DVFlQRSBodG1sIFNZU1RFTSAiYWJvdXQ6bGVnYWN5LWNvbXBhdCI+Civvu788IURPQ1RZUEUg
aHRtbCBTWVNURU0gImFib3V0OmxlZ2FjeS1jb21wYXQiPgogPGh0bWw+CiAgIDxoZWFkPgogICAg
IDxtZXRhIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSIgY29udGVudD0idGV4dC9odG1sOyBjaGFy
c2V0PXV0Zi04Ij4KQEAgLTgxMSw2ICs4MTEsNyBAQAogICAgICAgICAgICAgPGxpPklmIDxhIGRl
Zi1pZD0iYnVmZmVyLWZ1bGwtZmxhZyI+PC9hPiBlcXVhbHMgdHJ1ZSBhbmQgdGhpcyBvYmplY3Qg
aXMgcmVhZHkgdG8gYWNjZXB0IG1vcmUgYnl0ZXMsIHRoZW4gc2V0IAogICAgICAgICAgICAgICB0
aGUgPGEgZGVmLWlkPSJidWZmZXItZnVsbC1mbGFnIj48L2E+IHRvIGZhbHNlLjwvbGk+CiAgICAg
ICAgICAgICA8bGk+U2V0IHRoZSA8YSBkZWYtaWQ9InVwZGF0aW5nIj48L2E+IGF0dHJpYnV0ZSB0
byBmYWxzZS48L2xpPgorICAgICAgICAgICAgPGxpPjxhIGRlZi1pZD0iUXVldWUtYS10YXNrLXRv
LWZpcmUtYW4tZXZlbnQtbmFtZWQiPjwvYT4gPGEgZGVmLWlkPSJ1cGRhdGUiPjwvYT4gYXQgdGhp
cyA8YT5Tb3VyY2VCdWZmZXI8L2E+IG9iamVjdC48L2xpPgogICAgICAgICAgICAgPGxpPjxhIGRl
Zi1pZD0iUXVldWUtYS10YXNrLXRvLWZpcmUtYW4tZXZlbnQtbmFtZWQiPjwvYT4gPGEgZGVmLWlk
PSJ1cGRhdGVlbmQiPjwvYT4gYXQgdGhpcyA8YT5Tb3VyY2VCdWZmZXI8L2E+IG9iamVjdC48L2xp
PgogICAgICAgIDwvb2w+CiAKQEAgLTg0OSwxOSArODUwLDI0IEBACiAgICAgICAgICAgICAgIDx0
ZD48YSBkZWYtaWQ9InVwZGF0aW5nIj48L2E+IHRyYW5zaXRpb25zIGZyb20gZmFsc2UgdG8gdHJ1
ZS48L3RkPgogICAgICAgICAgICAgPC90cj4KICAgICAgICAgICAgIDx0cj4KKyAgICAgICAgICAg
ICAgPHRkPjxhIGRlZi1pZD0iZXZlbnRkZm4iPnVwZGF0ZTwvYT48L3RkPgorICAgICAgICAgICAg
ICA8dGQ+PGNvZGU+RXZlbnQ8L2NvZGU+PC90ZD4KKyAgICAgICAgICAgICAgPHRkPlRoZSBhcHBl
bmQgb3IgcmVtb3ZlIGhhcyBzdWNjZXNzZnVsbHkgY29tcGxldGVkLiA8YSBkZWYtaWQ9InVwZGF0
aW5nIj48L2E+IHRyYW5zaXRpb25zIGZyb20gdHJ1ZSB0byBmYWxzZS48L3RkPgorICAgICAgICAg
ICAgPC90cj4KKyAgICAgICAgICAgIDx0cj4KICAgICAgICAgICAgICAgPHRkPjxhIGRlZi1pZD0i
ZXZlbnRkZm4iPnVwZGF0ZWVuZDwvYT48L3RkPgogICAgICAgICAgICAgICA8dGQ+PGNvZGU+RXZl
bnQ8L2NvZGU+PC90ZD4KLSAgICAgICAgICAgICAgPHRkPjxhIGRlZi1pZD0idXBkYXRpbmciPjwv
YT4gdHJhbnNpdGlvbnMgZnJvbSB0cnVlIHRvIGZhbHNlLjwvdGQ+CisgICAgICAgICAgICAgIDx0
ZD5UaGUgYXBwZW5kIG9yIHJlbW92ZSBoYXMgZW5kZWQuPC90ZD4KICAgICAgICAgICAgIDwvdHI+
CiAgICAgICAgICAgICA8dHI+CiAgICAgICAgICAgICAgIDx0ZD48YSBkZWYtaWQ9ImV2ZW50ZGZu
Ij5lcnJvcjwvYT48L3RkPgogICAgICAgICAgICAgICA8dGQ+PGNvZGU+RXZlbnQ8L2NvZGU+PC90
ZD4KLSAgICAgICAgICAgICAgPHRkPkFuIGVycm9yIG9jY3VycmVkIGR1cmluZyB0aGUgYXBwZW5k
LjwvdGQ+CisgICAgICAgICAgICAgIDx0ZD5BbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdGhlIGFw
cGVuZC4gPGEgZGVmLWlkPSJ1cGRhdGluZyI+PC9hPiB0cmFuc2l0aW9ucyBmcm9tIHRydWUgdG8g
ZmFsc2UuPC90ZD4KICAgICAgICAgICAgIDwvdHI+CiAgICAgICAgICAgICA8dHI+CiAgICAgICAg
ICAgICAgIDx0ZD48YSBkZWYtaWQ9ImV2ZW50ZGZuIj5hYm9ydDwvYT48L3RkPgogICAgICAgICAg
ICAgICA8dGQ+PGNvZGU+RXZlbnQ8L2NvZGU+PC90ZD4KLSAgICAgICAgICAgICAgPHRkPlRoZSBh
cHBlbmQgb3IgcmVtb3ZlIHdhcyBhYm9ydGVkIGJ5IGFuIDxhIGRlZi1pZD0iYWJvcnQiPjwvYT4g
Y2FsbC48L3RkPgorICAgICAgICAgICAgICA8dGQ+VGhlIGFwcGVuZCBvciByZW1vdmUgd2FzIGFi
b3J0ZWQgYnkgYW4gPGEgZGVmLWlkPSJhYm9ydCI+PC9hPiBjYWxsLiA8YSBkZWYtaWQ9InVwZGF0
aW5nIj48L2E+IHRyYW5zaXRpb25zIGZyb20gdHJ1ZSB0byBmYWxzZS48L3RkPgogICAgICAgICAg
ICAgPC90cj4KICAgICAgICAgICA8L3Rib2R5PgogICAgICAgICA8L3RhYmxlPgpAQCAtOTQ2LDYg
Kzk1Miw3IEBACiAgICAgICAgICAgICA8L2xpPgogICAgICAgICAgICAgPGxpPjxpPk5lZWQgbW9y
ZSBkYXRhOjwvaT4gSWYgdGhlIDxhIGRlZi1pZD0ic3RyZWFtLWFwcGVuZC1sb29wIj48L2E+IGFs
Z29yaXRobSBpcyBydW5uaW5nIGFuZCBzdGlsbCBoYXMgZGF0YSB0byByZWFkLCB0aGVuIGFib3J0
IHRoZXNlIHN0ZXBzLgogICAgICAgICAgICAgPGxpPlNldCB0aGUgPGEgZGVmLWlkPSJ1cGRhdGlu
ZyI+PC9hPiBhdHRyaWJ1dGUgdG8gZmFsc2UuPC9saT4KKyAgICAgICAgICAgIDxsaT48YSBkZWYt
aWQ9IlF1ZXVlLWEtdGFzay10by1maXJlLWFuLWV2ZW50LW5hbWVkIj48L2E+IDxhIGRlZi1pZD0i
dXBkYXRlIj48L2E+IGF0IHRoaXMgPGE+U291cmNlQnVmZmVyPC9hPiBvYmplY3QuPC9saT4KICAg
ICAgICAgICAgIDxsaT48YSBkZWYtaWQ9IlF1ZXVlLWEtdGFzay10by1maXJlLWFuLWV2ZW50LW5h
bWVkIj48L2E+IDxhIGRlZi1pZD0idXBkYXRlZW5kIj48L2E+IGF0IHRoaXMgPGE+U291cmNlQnVm
ZmVyPC9hPiBvYmplY3QuPC9saT4KICAgICAgICAgICA8L29sPgogICAgICAgICA8L3NlY3Rpb24+
CkBAIC0xMDA5LDYgKzEwMTYsNyBAQAogICAgICAgICAgICAgPGxpPlJ1biB0aGUgPGEgZGVmLWlk
PSJzZWdtZW50LXBhcnNlci1sb29wIj48L2E+IGFsZ29yaXRobS48L2xpPgogICAgICAgICAgICAg
PGxpPkp1bXAgdG8gdGhlIDxpPmxvb3AgdG9wPC9pPiBzdGVwIGFib3ZlLjwvbGk+CiAgICAgICAg
ICAgICA8bGk+PGk+TG9vcCBEb25lOiA8L2k+U2V0IHRoZSA8YSBkZWYtaWQ9InVwZGF0aW5nIj48
L2E+IGF0dHJpYnV0ZSB0byBmYWxzZS48L2xpPgorICAgICAgICAgICAgPGxpPjxhIGRlZi1pZD0i
UXVldWUtYS10YXNrLXRvLWZpcmUtYW4tZXZlbnQtbmFtZWQiPjwvYT4gPGEgZGVmLWlkPSJ1cGRh
dGUiPjwvYT4gYXQgdGhpcyA8YT5Tb3VyY2VCdWZmZXI8L2E+IG9iamVjdC48L2xpPgogICAgICAg
ICAgICAgPGxpPjxhIGRlZi1pZD0iUXVldWUtYS10YXNrLXRvLWZpcmUtYW4tZXZlbnQtbmFtZWQi
PjwvYT4gPGEgZGVmLWlkPSJ1cGRhdGVlbmQiPjwvYT4gYXQgdGhpcyA8YT5Tb3VyY2VCdWZmZXI8
L2E+IG9iamVjdC48L2xpPgogICAgICAgICAgIDwvb2w+CiAgICAgICAgIDwvc2VjdGlvbj4KZGlm
ZiAtciA3Nzk3NWFiZWVjNDEgbWVkaWEtc291cmNlL21lZGlhLXNvdXJjZS5qcwotLS0gYS9tZWRp
YS1zb3VyY2UvbWVkaWEtc291cmNlLmpzCVRodSBKYW4gMzEgMTQ6MjA6NTQgMjAxMyAtMDgwMAor
KysgYi9tZWRpYS1zb3VyY2UvbWVkaWEtc291cmNlLmpzCU1vbiBGZWIgMTEgMTI6NDc6MTMgMjAx
MyAtMDUwMApAQCAtOTMsNyArOTMsOCBAQAogICAgICdkZWNvZGUnOiB7IGZ1bmM6IGlkbHJlZl9o
ZWxwZXIsIGZyYWdtZW50OiAnaWRsLWRlZi1FbmRPZlN0cmVhbUVycm9yJywgbGlua190ZXh0OiAn
ImRlY29kZSInLCAgfSwKIAogICAgICd1cGRhdGVzdGFydCc6IHsgZnVuYzogZXZlbnRyZWZfaGVs
cGVyLCBmcmFnbWVudDogJ3VwZGF0ZXN0YXJ0JywgbGlua190ZXh0OiAndXBkYXRlc3RhcnQnLCAg
fSwKLSAgICAndXBkYXRlZW5kJzogeyBmdW5jOiBldmVudHJlZl9oZWxwZXIsIGZyYWdtZW50OiAn
dXBkYXRlZW5kJywgbGlua190ZXh0OiAndXBkYXRlZW5kJywgIH0sCisgICAgJ3VwZGF0ZSc6IHsg
ZnVuYzogZXZlbnRyZWZfaGVscGVyLCBmcmFnbWVudDogJ3VwZGF0ZScsIGxpbmtfdGV4dDogJ3Vw
ZGF0ZScsIH0sCisgICAgJ3VwZGF0ZWVuZCc6IHsgZnVuYzogZXZlbnRyZWZfaGVscGVyLCBmcmFn
bWVudDogJ3VwZGF0ZWVuZCcsIGxpbmtfdGV4dDogJ3VwZGF0ZWVuZCcsIH0sCiAgICAgJ3VwZGF0
ZWVycm9yJzogeyBmdW5jOiBldmVudHJlZl9oZWxwZXIsIGZyYWdtZW50OiAnZXJyb3InLCBsaW5r
X3RleHQ6ICdlcnJvcicsICB9LAogICAgICd1cGRhdGVhYm9ydCc6IHsgZnVuYzogZXZlbnRyZWZf
aGVscGVyLCBmcmFnbWVudDogJ2Fib3J0JywgbGlua190ZXh0OiAnYWJvcnQnLCAgfSwKIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>