HTML Standard Tracker

Filter

File a bug

SVNBugCommentTime (UTC)
4133[Gecko] [Opera] [Webkit] Make media elements not fire progress events, just regular events, since we don't know what to put in their 'loaded' attributes.2009-10-14 10:08
@@ -23852,27 +23852,25 @@ interface <dfn>CueRangeCallback</dfn> {
    title="dom-media-playbackRate">playbackRate</code> attribute to the
    value of the <code
    title="dom-media-defaultPlaybackRate">defaultPlaybackRate</code>
    attribute.</p></li>
 
    <li><p>If <var title="">aborted</var> is true, set the <code
    title="dom-media-error">error</code> attribute to a new
    <code>MediaError</code> object whose <code
    title="dom-MediaError-code">code</code> attribute is set to <code
    title="dom-MediaError-MEDIA_ERR_ABORTED">MEDIA_ERR_ABORTED</code>,
-   <span>fire a progress event</span> named <code
-   title="event-media-abort">abort</code> at the <span>media element</span>,
-   in the context of the <span title="fetch">fetching process</span>
-   that is in progress for the element, and <span>fire a progress
-   event</span> named <code title="event-media-loadend">loadend</code> at
-   the <span>media element</span>, in the context of the same <span
-   title="fetch">fetching process</span>.</p></li>
+   <span>fire a simple event</span> named <code
+   title="event-media-abort">abort</code> at the <span>media
+   element</span>, and <span>fire a simple event</span> named <code
+   title="event-media-loadend">loadend</code> at the <span>media
+   element</span>.</p></li>
 
    <li><p>Set the <code title="dom-media-error">error</code> attribute
    to null and the <span>autoplaying flag</span> to true.</p></li>
 
    <li><p>If <var title="">emptied</var> is true, <span>fire a simple
    event</span> named <code title="event-media-emptied">emptied</code> at
    the <span>media element</span>.</p></li>
 
    <li><p>Invoke the <span>media element</span>'s <span
    title="concept-media-load-algorithm">resource selection
@@ -23936,24 +23934,24 @@ interface <dfn>CueRangeCallback</dfn> {
 
    </li>
 
    <li><p>&#x231B; Set the <span>media element</span>'s
    <span>delaying-the-load-event flag</span> to true (this <span
    title="delay the load event">delays the load event</span>), and set
    its <code title="dom-media-networkState">networkState</code> to
    <code
    title="dom-media-NETWORK_LOADING">NETWORK_LOADING</code>.</p></li>
 
-   <li><p>&#x231B; <span>Queue a task</span> to <span>fire a progress
-   event</span> named <code title="event-media-loadstart">loadstart</code>
-   at the <span>media element</span>, with no relevant <span
-   title="fetch">fetching process</span>.</p></li>
+   <li><p>&#x231B; <span>Queue a task</span> to <span>fire a simple
+   event</span> named <code
+   title="event-media-loadstart">loadstart</code> at the <span>media
+   element</span>.</p></li>
 
    <li>
 
     <p>If <var title="">mode</var> is <i title="">attribute</i>, then
     run these substeps:</p>
 
     <ol>
 
      <li><p>&#x231B; Let <var title="">absolute URL</var> be the
      <span>absolute URL</span> that would have resulted from <span
@@ -23986,35 +23984,28 @@ interface <dfn>CueRangeCallback</dfn> {
      <code>MediaError</code> object whose <code
      title="dom-MediaError-code">code</code> attribute is set to <code
      title="dom-MediaError-MEDIA_ERR_SRC_NOT_SUPPORTED">MEDIA_ERR_SRC_NOT_SUPPORTED</code>.</p></li>
 
      <li><p>Set the element's <code
      title="dom-media-networkState">networkState</code> attribute to
      the <span
      title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</span>
      value.</p></li>
 
-     <li><p><span>Queue a task</span> to <span>fire a progress
-     event</span> named <code title="event-media-error">error</code> at the
-     <span>media element</span>, in the context of the <span
-     title="fetch">fetching process</span> that was used to try to
-     obtain the <span>media resource</span> in the <span
-     title="concept-media-load-resource">resource fetch
-     algorithm</span>.</p></li>
+     <li><p><span>Queue a task</span> to <span>fire a simple
+     event</span> named <code title="event-media-error">error</code>
+     at the <span>media element</span>.</p></li>
 
-     <li><p><span>Queue a task</span> to <span>fire a progress
-     event</span> named <code title="event-media-loadend">loadend</code> at
-     the <span>media element</span>, in the context of the <span
-     title="fetch">fetching process</span> that was used to try to
-     obtain the <span>media resource</span> in the <span
-     title="concept-media-load-resource">resource fetch
-     algorithm</span>.</p></li>
+     <li><p><span>Queue a task</span> to <span>fire a simple
+     event</span> named <code
+     title="event-media-loadend">loadend</code> at the <span>media
+     element</span>.</p></li>
 
      <li><p>Set the element's <span>delaying-the-load-event flag</span>
      to false. This stops <span title="delay the load event">delaying
      the load event</span>.</p></li>
 
      <li><p>Abort these steps. Until the <code
      title="dom-media-load">load()</code> method is invoked or the
      <code title="attr-media-src">src</code> attribute is changed, the
      element won't attempt to load another resource.</p></li>
      <!-- it took its ball and went home, sulking. -->
@@ -24217,54 +24208,49 @@ interface <dfn>CueRangeCallback</dfn> {
 
    <li>
 
     <p>Begin to <span>fetch</span> the <var title="">current media
     resource</var>, from the <span>media element</span>'s
     <code>Document</code>'s <span>origin</span>.</p> <!-- not
     http-origin privacy sensitive (looking forward to CORS here) -->
 
     <p>Every 350ms (&#xB1;200ms) or for every byte received, whichever
     is <em>least</em> frequent, <span>queue a task</span> to
-    <span>fire a progress event</span> named <code
-    title="event-media-progress">progress</code> at the element, in the
-    context of the <span title="fetch">fetching process</span> started
-    by this instance of this algorithm.</p>
+    <span>fire a simple event</span> named <code
+    title="event-media-progress">progress</code> at the element.</p>
 
     <p>If at any point the user agent has received no data for more
     than about three seconds, then <span>queue a task</span> to
-    <span>fire a progress event</span> named <code
-    title="event-media-stalled">stalled</code> at the element, in the
-    context of the <span title="fetch">fetching process</span> started
-    by this instance of this algorithm.</p>
+    <span>fire a simple event</span> named <code
+    title="event-media-stalled">stalled</code> at the element.</p>
 
     <p>User agents may allow users to selectively block or slow
     <span>media data</span> downloads. When a <span>media
     element</span>'s download has been blocked altogether, the user
     agent must act as if it was stalled (as opposed to acting as if
     the connection was closed). The rate of the download may also be
     throttled automatically by the user agent, e.g. to balance the
     download with other connections sharing the same bandwidth.</p>
 
     <p>User agents may decide to not download more content at any
     time, e.g. after buffering five minutes of a one hour media
     resource, while waiting for the user to decide whether to play the
     resource or not, or while waiting for user input in an interactive
     resource. When a <span>media element</span>'s download has been
     suspended, the user agent must set the <code
     title="dom-media-networkState">networkState</code> to <code
     title="dom-media-NETWORK_IDLE">NETWORK_IDLE</code> and <span>queue
-    a task</span> to <span>fire a progress event</span> named <code
-    title="event-media-suspend">suspend</code> at the element, in the
-    context of the <span title="fetch">fetching process</span> started
-    by this instance of this algorithm. If and when downloading of the
-    resource resumes, the user agent must set the <code
-    title="dom-media-networkState">networkState</code> to <code
+    a task</span> to <span>fire a simple event</span> named <code
+    title="event-media-suspend">suspend</code> at the element. If and
+    when downloading of the resource resumes, the user agent must set
+    the <code title="dom-media-networkState">networkState</code> to
+    <code
     title="dom-media-NETWORK_LOADING">NETWORK_LOADING</code>.</p>
 
     <p>The <code title="attr-media-autobuffer">autobuffer</code>
     attribute provides a hint that the author expects that downloading
     the entire resource optimistically will be worth it, even in the
     absence of the <code title="attr-media-autoplay">autoplay</code>
     attribute. In the absence of either attribute, the user agent is
     likely to find that waiting until the user starts playback before
     downloading any further content leads to a more efficient use of
     the network resources.</p>
@@ -24434,25 +24420,23 @@ interface <dfn>CueRangeCallback</dfn> {
 
      </dd>
 
 
      <dt>Once the entire <span>media resource</span> has been <span
      title="fetch">fetched</span> (but potentially before any of it
      has been decoded)</dt>
 
      <dd>
 
-      <p><span>Queue a task</span> to <span>fire a progress
-      event</span> named <code title="event-media-progress">progress</code>
-      at the <span>media element</span>, in the context of the <span
-      title="fetch">fetching process</span> started by this instance
-      of this algorithm.</p>
+      <p><span>Queue a task</span> to <span>fire a simple event</span>
+      named <code title="event-media-progress">progress</code> at the
+      <span>media element</span>.</p>
 
      </dd>
 
 
      <dt>If the connection is interrupted, causing the user agent to
      give up trying to fetch the resource</dt>
 
      <dd>
 
       <p>Fatal network errors that occur after the user agent has
@@ -24464,31 +24448,28 @@ interface <dfn>CueRangeCallback</dfn> {
 
        <li><p>The user agent should cancel the fetching
        process.</p></li>
 
        <li><p>Set the <code title="dom-media-error">error</code>
        attribute to a new <code>MediaError</code> object whose <code
        title="dom-MediaError-code">code</code> attribute is set to
        <code
        title="dom-MediaError-MEDIA_ERR_NETWORK">MEDIA_ERR_NETWORK</code>.</p></li>
 
-       <li><p><span>Queue a task</span> to <span>fire a progress
-       event</span> named <code title="event-media-error">error</code> at
-       the <span>media element</span>, in the context of the <span
-       title="fetch">fetching process</span> started by this instance
-       of this algorithm.</p></li>
+       <li><p><span>Queue a task</span> to <span>fire a simple
+       event</span> named <code title="event-media-error">error</code>
+       at the <span>media element</span>.</p></li>
 
-       <li><p><span>Queue a task</span> to <span>fire a progress
-       event</span> named <code title="event-media-loadend">loadend</code>
-       at the <span>media element</span>, in the context of the <span
-       title="fetch">fetching process</span> started by this instance
-       of this algorithm.</p></li>
+       <li><p><span>Queue a task</span> to <span>fire a simple
+       event</span> named <code
+       title="event-media-loadend">loadend</code> at the <span>media
+       element</span>.</p></li>
 
        <li><p>Set the element's <code
        title="dom-media-networkState">networkState</code> attribute to
        the <span title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</span>
        value and <span>queue a task</span> to <span>fire a simple
        event</span> named <code title="event-media-emptied">emptied</code>
        at the element.</p></li>
 
        <li><p>Set the element's <span>delaying-the-load-event
        flag</span> to false. This stops <span title="delay the load
@@ -24517,31 +24498,28 @@ interface <dfn>CueRangeCallback</dfn> {
 
        <li><p>The user agent should cancel the fetching
        process.</p></li>
 
        <li><p>Set the <code title="dom-media-error">error</code>
        attribute to a new <code>MediaError</code> object whose <code
        title="dom-MediaError-code">code</code> attribute is set to
        <code
        title="dom-MediaError-MEDIA_ERR_DECODE">MEDIA_ERR_DECODE</code>.</p></li>
 
-       <li><p><span>Queue a task</span> to <span>fire a progress
-       event</span> named <code title="event-media-error">error</code> at
-       the <span>media element</span>, in the context of the <span
-       title="fetch">fetching process</span> started by this instance
-       of this algorithm.</p></li>
+       <li><p><span>Queue a task</span> to <span>fire a simple
+       event</span> named <code title="event-media-error">error</code>
+       at the <span>media element</span>.</p></li>
 
-       <li><p><span>Queue a task</span> to <span>fire a progress
-       event</span> named <code title="event-media-loadend">loadend</code>
-       at the <span>media element</span>, in the context of the <span
-       title="fetch">fetching process</span> started by this instance
-       of this algorithm.</p></li>
+       <li><p><span>Queue a task</span> to <span>fire a simple
+       event</span> named <code
+       title="event-media-loadend">loadend</code> at the <span>media
+       element</span>.</p></li>
 
        <li><p>Set the element's <code
        title="dom-media-networkState">networkState</code> attribute to
        the <span title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</span>
        value and <span>queue a task</span> to <span>fire a simple
        event</span> named <code title="event-media-emptied">emptied</code>
        at the element.</p></li>
 
        <li><p>Set the element's <span>delaying-the-load-event
        flag</span> to false. This stops <span title="delay the load
@@ -24572,31 +24550,28 @@ interface <dfn>CueRangeCallback</dfn> {
 
        <li><p>The user agent should cancel the fetching
        process.</p></li>
 
        <li><p>Set the <code title="dom-media-error">error</code>
        attribute to a new <code>MediaError</code> object whose <code
        title="dom-MediaError-code">code</code> attribute is set to
        <code
        title="dom-MediaError-MEDIA_ERR_ABORT">MEDIA_ERR_ABORT</code>.</p></li>
 
-       <li><p><span>Queue a task</span> to <span>fire a progress
-       event</span> named <code title="event-media-abort">abort</code> at
-       the <span>media element</span>, in the context of the <span
-       title="fetch">fetching process</span> started by this instance
-       of this algorithm.</p></li>
+       <li><p><span>Queue a task</span> to <span>fire a simple
+       event</span> named <code title="event-media-abort">abort</code>
+       at the <span>media element</span>.</p></li>
 
-       <li><p><span>Queue a task</span> to <span>fire a progress
-       event</span> named <code title="event-media-loadend">loadend</code>
-       at the <span>media element</span>, in the context of the <span
-       title="fetch">fetching process</span> started by this instance
-       of this algorithm.</p></li>
+       <li><p><span>Queue a task</span> to <span>fire a simple
+       event</span> named <code
+       title="event-media-loadend">loadend</code> at the <span>media
+       element</span>.</p></li>
 
        <li><p>If the <span>media element</span>'s <code
        title="dom-media-readyState">readyState</code> attribute has a
        value equal to <code
        title="dom-media-HAVE_NOTHING">HAVE_NOTHING</code>, set the
        element's <code
        title="dom-media-networkState">networkState</code> attribute to
        the <span title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</span>
        value and <span>queue a task</span> to <span>fire a simple
        event</span> named <code title="event-media-emptied">emptied</code>
@@ -26138,48 +26113,48 @@ interface <dfn>CueRangeCallback</dfn> {
    <thead>
     <tr>
      <th>Event name
      <th>Interface
      <th>Dispatched when...
      <th>Preconditions
 
    <tbody>
     <tr>
      <td><dfn title="event-media-loadstart"><code>loadstart</code></dfn>
-     <td><code>ProgressEvent</code> <a href="#refsPROGRESS">[PROGRESS]</a>
+     <td><code>Event</code>
      <td>The user agent begins looking for <span>media data</span>, as part of the <span title="concept-media-load-algorithm">resource selection algorithm</span>.
      <td><code title="dom-media-networkState">networkState</code> equals <code title="dom-media-NETWORK_LOADING">NETWORK_LOADING</code>
     <tr>
      <td><dfn title="event-media-progress"><code>progress</code></dfn>
-     <td><code>ProgressEvent</code> <a href="#refsPROGRESS">[PROGRESS]</a>
+     <td><code>Event</code>
      <td>The user agent is fetching <span>media data</span>.
      <td><code title="dom-media-networkState">networkState</code> equals <code title="dom-media-NETWORK_LOADING">NETWORK_LOADING</code>
     <tr>
      <td><dfn title="event-media-suspend"><code>suspend</code></dfn>
-     <td><code>ProgressEvent</code> <a href="#refsPROGRESS">[PROGRESS]</a>
+     <td><code>Event</code>
      <td>The user agent is intentionally not currently fetching <span>media data</span>, but does not have the entire <span>media resource</span> downloaded.
      <td><code title="dom-media-networkState">networkState</code> equals <code title="dom-media-NETWORK_IDLE">NETWORK_IDLE</code>
     <tr>
      <td><dfn title="event-media-abort"><code>abort</code></dfn>
-     <td><code>ProgressEvent</code> <a href="#refsPROGRESS">[PROGRESS]</a>
+     <td><code>Event</code>
      <td>The user agent stops fetching the <span>media data</span> before it is completely downloaded, but not due to an error.
      <td><code title="dom-media-error">error</code> is an object with the code <code title="dom-MediaError-MEDIA_ERR_ABORTED">MEDIA_ERR_ABORTED</code>.
          <code title="dom-media-networkState">networkState</code> equals either <code title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code> or <code title="dom-media-NETWORK_IDLE">NETWORK_IDLE</code>, depending on when the download was aborted.
     <tr>
      <td><dfn title="event-media-error"><code>error</code></dfn>
-     <td><code>ProgressEvent</code> <a href="#refsPROGRESS">[PROGRESS]</a>
+     <td><code>Event</code>
      <td>An error occurs while fetching the <span>media data</span>.
      <td><code title="dom-media-error">error</code> is an object with the code <code title="dom-MediaError-MEDIA_ERR_NETWORK">MEDIA_ERR_NETWORK</code> or higher.
          <code title="dom-media-networkState">networkState</code> equals either <code title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code> or <code title="dom-media-NETWORK_IDLE">NETWORK_IDLE</code>, depending on when the download was aborted.
     <tr>
      <td><dfn title="event-media-loadend"><code>loadend</code></dfn>
-     <td><code>ProgressEvent</code> <a href="#refsPROGRESS">[PROGRESS]</a>
+     <td><code>Event</code>
      <td>The user agent stops fetching the <span>media data</span>, for whatever reason.
      <td>One of <code title="event-media-abort">abort</code> or <code title="event-media-error">error</code> has just fired.
     <tr>
      <td><dfn title="event-media-emptied"><code>emptied</code></dfn>
      <td><code>Event</code>
      <td>A <span>media element</span> whose <code title="dom-media-networkState">networkState</code> was previously not in the <code title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code> state has just switched to that state (either because of a fatal error during load that's about to be reported, or because the <code title="dom-media-load">load()</code> method was invoked while the <span title="concept-media-load-algorithm">resource selection algorithm</span> was already running, in which case it is fired synchronously during the <code title="dom-media-load">load()</code> method call).
      <td><code title="dom-media-networkState">networkState</code> is <code title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code>; all the IDL attributes are in their initial states.
     <tr>
      <td><dfn title="event-media-stalled"><code>stalled</code></dfn>
      <td><code>ProgressEvent</code>
@@ -57537,20 +57512,21 @@ interface <dfn>Function</dfn> {
   values appropriately describing the state of the key input device at
   the time the event is created.</p>
 
   <p><dfn title="fire a simple event">Firing a simple event named
   <var title="">e</var></dfn> means that an event with the name <var
   title="">e</var>, with no namespace, which does not bubble (except
   where otherwise stated) and is not cancelable (except where
   otherwise stated), and which uses the <code>Event</code> interface,
   must be dispatched at the given target.</p>
 
+<!--
   <p><dfn title="fire a progress event">Firing a progress event named
   <var title="">e</var></dfn>, optionally in the context of a
   particular instance of the <span title="fetch">fetching
   algorithm</span>, means that an event with the name <var
   title="">e</var>, with no namespace, which does not bubble (except
   where otherwise stated) and is not cancelable (except where
   otherwise stated), and which uses the <code>ProgressEvent</code>
   interface, must be dispatched at the given target element. If there
   is a <span title="fetch">fetching algorithm</span>, and the
   <span>URL</span> being <span title="fetch">fetched</span> has the
@@ -57566,20 +57542,21 @@ interface <dfn>Function</dfn> {
   title="dom-ProgressEvents-loaded">loaded</code> attribute must be
   set to the <span title="concept-fetch-loaded">number of bytes
   downloaded</span>, excluding HTTP headers <span
   title="concept-http-equivalent-headers">or
   equivalent</span>. Otherwise, the <code
   title="dom-ProgressEvents-lengthComputable">lengthComputable</code>
   attribute must be set to false, and the <code
   title="dom-ProgressEvents-total">total</code> and the <code
   title="dom-ProgressEvents-loaded">loaded</code> attributes must be
   set to zero. <a href="#refsPROGRESS">[PROGRESS]</a></p>
+-->
 
   <p>The default action of these event is to do nothing where where
   otherwise stated.</p>
 
   </div>
 
 
   <div class="impl">
 
   <h5>Events and the <code>Window</code> object</h5>

|