Skip to content
Permalink
Browse files

[] (0) Further work on the event loop front.

git-svn-id: http://svn.whatwg.org/webapps@2082 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information
Hixie committed Aug 19, 2008
1 parent 80eca15 commit d880f94128e5db92411a3b064080f69f3cb09b8e
Showing with 117 additions and 100 deletions.
  1. +63 −55 index
  2. +54 −45 source
118 index

<li>
<p>While the fetching process is progressing, the user agent must <a
href="#firing6">fire a progress event</a> called <code
title=event-progress><a href="#progress0">progress</a></code> at the
element every 350ms (&#xB1;200ms) or for every byte received, whichever
is <em>least</em> frequent.</p>
href="#queue">queue a task</a> to <a href="#firing6">fire a progress
event</a> called <code title=event-progress><a
href="#progress0">progress</a></code> at the element every 350ms
(&#xB1;200ms) or for every byte received, whichever is <em>least</em>
frequent.</p>

<p>If at any point the user agent has received no data for more than
about three seconds, the user agent must <a href="#firing6">fire a
progress event</a> called <code title=event-stalled><a
href="#stalled">stalled</a></code> at the element.</p>
about three seconds, the user agent must <a href="#queue">queue a
task</a> to <a href="#firing6">fire a progress event</a> called <code
title=event-stalled><a href="#stalled">stalled</a></code> at the
element.</p>

<p>User agents may allow users to selectively block or slow <a
href="#media9">media data</a> downloads. When a <a href="#media7">media
The user agent must consider a resource erroneous only if it has given
up trying to fetch it.</p>

<p>The <a href="#networking">networking task source</a> <a href="#tasks"
title=concept-task>tasks</a> to process the data as it is being fetched
must, when appropriate, include the relevant substeps from the following
list:</p>

<dl class=switch>
<dt>If the <a href="#media9">media data</a> cannot be fetched at all,
due to network errors, causing the user agent to give up trying to
href="#mediaerrnetwork">MEDIA_ERR_NETWORK</a></code>.

<li>The <a href="#begun">begun flag</a> must be set to false and the
user agent must <a href="#firing6">fire a progress event</a> called
<code title=event-error><a href="#error1">error</a></code> at the <a
user agent must <a href="#queue">queue a task</a> to <a
href="#firing6">fire a progress event</a> called <code
title=event-error><a href="#error1">error</a></code> at the <a
href="#media7">media element</a>.

<li>The element's <code title=dom-media-networkState><a
href="#networkstate">networkState</a></code> attribute must be
switched to the <a href="#empty" title=dom-media-EMPTY>EMPTY</a>
value and the user agent must <a href="#firing2">fire a simple
event</a> called <code title=event-emptied><a
href="#emptied">emptied</a></code> at the element.
value and the user agent must <a href="#queue">queue a task</a> to <a
href="#firing2">fire a simple event</a> called <code
title=event-emptied><a href="#emptied">emptied</a></code> at the
element.

<li>These steps must be aborted.
</ol>
href="#mediaerrdecode">MEDIA_ERR_DECODE</a></code>.

<li>The <a href="#begun">begun flag</a> must be set to false and the
user agent must <a href="#firing6">fire a progress event</a> called
<code title=event-error><a href="#error1">error</a></code> at the <a
user agent must <a href="#queue">queue a task</a> to <a
href="#firing6">fire a progress event</a> called <code
title=event-error><a href="#error1">error</a></code> at the <a
href="#media7">media element</a>.

<li>The element's <code title=dom-media-networkState><a
href="#networkstate">networkState</a></code> attribute must be
switched to the <a href="#empty" title=dom-media-EMPTY>EMPTY</a>
value and the user agent must <a href="#firing2">fire a simple
event</a> called <code title=event-emptied><a
href="#emptied">emptied</a></code> at the element.
value and the user agent must <a href="#queue">queue a task</a> to <a
href="#firing2">fire a simple event</a> called <code
title=event-emptied><a href="#emptied">emptied</a></code> at the
element.

<li>These steps must be aborted.
</ol>
title=dom-MediaError-MEDIA_ERR_ABORT>MEDIA_ERR_ABORT</code>.

<li>The <a href="#begun">begun flag</a> must be set to false and the
user agent must <a href="#firing6">fire a progress event</a> called
<code title=event-abort><a href="#abort">abort</a></code> at the <a
user agent must <a href="#queue">queue a task</a> to <a
href="#firing6">fire a progress event</a> called <code
title=event-abort><a href="#abort">abort</a></code> at the <a
href="#media7">media element</a>.

<li>If the <a href="#media7">media element</a>'s <code
the element's <code title=dom-media-networkState><a
href="#networkstate">networkState</a></code> attribute must be
switched to the <a href="#empty" title=dom-media-EMPTY>EMPTY</a>
value and the user agent must <a href="#firing2">fire a simple
event</a> called <code title=event-emptied><a
href="#emptied">emptied</a></code> at the element. (If the <code
title=dom-media-networkState><a
value and the user agent must <a href="#queue">queue a task</a> to <a
href="#firing2">fire a simple event</a> called <code
title=event-emptied><a href="#emptied">emptied</a></code> at the
element. (If the <code title=dom-media-networkState><a
href="#networkstate">networkState</a></code> attribute has a value
greater than <code title=dom-media-LOADING><a
href="#loading0">LOADING</a></code>, then this doesn't happen; the

<li>
<p class=note>The user agent <a href="#durationUpdate">will</a> <a
href="#firing2">fire a simple event</a> called <code
title=event-durationchange><a
href="#queue">queue a task</a> to <a href="#firing2">fire a simple
event</a> called <code title=event-durationchange><a
href="#durationchange">durationchange</a></code> at the element at
this point.

<li>
<p>The user agent must <a href="#firing2">fire a simple event</a>
called <code title=event-loadedmetadata><a
<p>The user agent must <a href="#queue">queue a task</a> to <a
href="#firing2">fire a simple event</a> called <code
title=event-loadedmetadata><a
href="#loadedmetadata0">loadedmetadata</a></code> at the element.
</ol>

be set to true.

<li>
<p>The user agent must <a href="#firing2">fire a simple event</a>
called <code title=event-loadedfirstframe><a
<p>The user agent must <a href="#queue">queue a task</a> to <a
href="#firing2">fire a simple event</a> called <code
title=event-loadedfirstframe><a
href="#loadedfirstframe0">loadedfirstframe</a></code> at the
element.

<li>
<p>The user agent must <a href="#firing2">fire a simple event</a>
called <code title=event-canshowcurrentframe><a
<p>The user agent must <a href="#queue">queue a task</a> to <a
href="#firing2">fire a simple event</a> called <code
title=event-canshowcurrentframe><a
href="#canshowcurrentframe0">canshowcurrentframe</a></code> at the
element.
</ol>
title=dom-media-networkState><a
href="#networkstate">networkState</a></code> attribute must be set to
<code title=dom-media-LOADED><a href="#loaded">LOADED</a></code>, and
the user agent must <a href="#firing6">fire a progress event</a> called
<code title=event-load><a href="#load0">load</a></code> at the element.
the user agent must <a href="#queue">queue a task</a> to <a
href="#firing6">fire a progress event</a> called <code
title=event-load><a href="#load0">load</a></code> at the element.
</ol>

<p>If a <a href="#media7">media element</a> whose <code
href="#current0">current playback position</a> reaches the <var><a
href="#effective1">effective loop end</a></var>, then the user agent must
increase <code title=dom-media-currentLoop><a
href="#currentloop">currentLoop</a></code> by 1, <a href="#queue">queue a
task</a> to <a href="#firing2">fire a simple event</a> called <code
title=event-timeupdate><a href="#timeupdate">timeupdate</a></code>, and <a
href="#seek" title=dom-media-seek>seek</a> to the <var><a
href="#effective0">effective loop start</a></var>.
href="#currentloop">currentLoop</a></code> by 1 and <a href="#seek"
title=dom-media-seek>seek</a> to the <var><a href="#effective0">effective
loop start</a></var>.

<p>When <code title=dom-media-currentLoop><a
href="#currentloop">currentLoop</a></code> is equal to the <span><code
start</a></var>.</p>

<p class=note>If this involved a seek, the user agent <a
href="#seekUpdate">will</a> <a href="#firing2">fire a simple event</a>
called <code title=event-timeupdate><a
href="#timeupdate">timeupdate</a></code> at the <a href="#media7">media
element</a>.</p>
href="#seekUpdate">will</a> <a href="#queue">queue a task</a> to <a
href="#firing2">fire a simple event</a> called <code
title=event-timeupdate><a href="#timeupdate">timeupdate</a></code> at
the <a href="#media7">media element</a>.</p>

<li>
<p>The <code title=dom-media-playbackRate><a

<p class=note>If this caused the <code title=dom-media-playbackRate><a
href="#playbackrate">playbackRate</a></code> attribute to change value,
the user agent <a href="#rateUpdate">will</a> <a href="#firing2">fire a
simple event</a> called <code title=event-ratechange><a
href="#ratechange">ratechange</a></code> at the <a href="#media7">media
element</a>.</p>
the user agent <a href="#rateUpdate">will</a> <a href="#queue">queue a
task</a> to <a href="#firing2">fire a simple event</a> called <code
title=event-ratechange><a href="#ratechange">ratechange</a></code> at
the <a href="#media7">media element</a>.</p>

<li>
<p>If the <a href="#media7">media element</a>'s <code
<li>
<p>If the fourth step above changed the value of <code
title=dom-media-paused><a href="#paused">paused</a></code>, the user
agent must, after any running scripts have finished executing, and after
any other events triggered by this algorithm (specifically <code
title=event-timeupdate><a href="#timeupdate">timeupdate</a></code> and
<code title=event-ratechange><a
href="#ratechange">ratechange</a></code>) have fired, <a
href="#firing2">fire a simple event</a> called <code
title=event-pause><a href="#pause1">play</a></code> at the element.
</li>
<!-- xxx queue -->
agent must <a href="#queue">queue a task</a> to <a href="#firing2">fire
a simple event</a> called <code title=event-pause><a
href="#pause1">play</a></code> at the element.
</ol>

<p>When the <dfn id=pause0 title=dom-media-pause><code>pause()</code></dfn>

0 comments on commit d880f94

Please sign in to comment.
You can’t perform that action at this time.