hixie: Captions - Stage 17: The logic for updating active cues, firing events, and triggering rendering updates; start of the domintro stuff. (whatwg r5132)

hixie: Captions - Stage 17: The logic for updating active cues, firing
events, and triggering rendering updates; start of the domintro stuff.
(whatwg r5132)

http://dev.w3.org/cvsweb/html5/spec/Overview.html?r1=1.4107&r2=1.4108&f=h
http://html5.org/tools/web-apps-tracker?from=5131&to=5132

===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.4107
retrieving revision 1.4108
diff -u -d -r1.4107 -r1.4108
--- Overview.html 1 Jul 2010 21:32:44 -0000 1.4107
+++ Overview.html 2 Jul 2010 22:57:13 -0000 1.4108
@@ -303,20 +303,19 @@
        document.getElementsByTagName('h2')[0].textContent += '; load: ' + (new Date() - loadTimer) + 'ms';
      fixBrokenLink();
    }
-  </script><link href="http://www.w3.org/StyleSheets/TR/W3C-WD" rel="stylesheet" type="text/css"><body onload="init()"><div class="head" id="head">
+  </script><link href="http://www.w3.org/StyleSheets/TR/W3C-ED" rel="stylesheet" type="text/css"><body onload="init()"><div class="head" id="head">
    <p><a href="http://www.w3.org/"><img alt="W3C" height="48" src="http://www.w3.org/Icons/w3c_home" width="72"></a></p>
 
    <h1>HTML5</h1>
    <h2 class="no-num no-toc" id="a-vocabulary-and-associated-apis-for-html-and-xhtml">A vocabulary and associated APIs for HTML and XHTML</h2>
-   <h2 class="no-num no-toc" id="w3c-working-draft-24-june-2010">W3C Working Draft 24 June 2010</h2>
-   <dl><dt>This Version:</dt>
-    <dd><a href="http://www.w3.org/TR/2010/WD-html5-20100624/">http://www.w3.org/TR/2010/WD-html5-20100624/</a></dd>
-    <dt>Latest Published Version:</dt>
+   <h2 class="no-num no-toc" id="editor-s-draft-2-july-2010">Editor's Draft 2 July 2010</h2>
+   <dl><dt>Latest Published Version:</dt>
     <dd><a href="http://www.w3.org/TR/html5/">http://www.w3.org/TR/html5/</a></dd>
     <dt>Latest Editor's Draft:</dt>
     <dd><a href="http://dev.w3.org/html5/spec/Overview.html">http://dev.w3.org/html5/spec/Overview.html</a></dd>
 <!-- ZZZ: add the new version after it has shipped -->
     <dt>Previous Versions:</dt>
+    <dd><a href="http://www.w3.org/TR/2010/WD-html5-20100624/">http://www.w3.org/TR/2010/WD-html5-20100624/</a></dd>
     <dd><a href="http://www.w3.org/TR/2010/WD-html5-20100304/">http://www.w3.org/TR/2010/WD-html5-20100304/</a></dd>
     <dd><a href="http://www.w3.org/TR/2009/WD-html5-20090825/">http://www.w3.org/TR/2009/WD-html5-20090825/</a></dd>
     <dd><a href="http://www.w3.org/TR/2009/WD-html5-20090423/">http://www.w3.org/TR/2009/WD-html5-20090423/</a></dd>
@@ -415,7 +414,7 @@
   Group</a> is the W3C working group responsible for this
   specification's progress along the W3C Recommendation
   track.
-  This specification is the 24 June 2010 Working Draft snapshot.
+  This specification is the 2 July 2010 Editor's Draft.
   </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>Work on this specification is also done at the <a href="http://www.whatwg.org/">WHATWG</a>. The W3C HTML working group
   actively pursues convergence with the WHATWG, as required by the <a href="http://www.w3.org/2007/03/HTML-WG-charter">W3C HTML working
   group charter</a>.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- required patent boilerplate --><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5
@@ -1369,12 +1368,13 @@
   the specification under the W3C copyright, while keeping a version
   with the less restrictive license on the WHATWG site.<p>Since then, both groups have been working together.</p><!--w3c-html--><!--VERSION--><p>The <a href="http://www.whatwg.org/specs/web-apps/current-work/">HTML
   specification</a> published by the WHATWG is not identical to
-  this specification. At the time of this publication, the main
-  differences were that the WHATWG version included features not
-  included in this W3C version: some features have been omitted, but
-  may be considered for future revisions of HTML beyond HTML5; and
-  other features were omitted because at the W3C they are published as
-  separate specifications.</p><!--w3c-html--><!--VERSION--><p>A separate document has been published by the W3C HTML working
+  this specification. The main differences are that the WHATWG version
+  includes features not included in this W3C version: some features
+  have been omitted as they are considered part of future revisions of
+  HTML, not HTML5; and other features are omitted because at the W3C
+  they are published as separate specifications. There are also some
+  minor differences. For an exact list of differences, please see the
+  WHATWG specification.</p><!--w3c-html--><!--VERSION--><p>A separate document has been published by the W3C HTML working
   group to document the differences between this specification and the
   language described in the HTML4 specification. <a href="#refsHTMLDIFF">[HTMLDIFF]</a><h3 id="design-notes"><span class="secno">1.5 </span>Design notes</h3><p class="XXX annotation"><b>Status: </b><i>Last call for comments</i><p><i>This section is non-normative.</i><p>It must be admitted that many aspects of HTML appear at first
   glance to be nonsensical and inconsistent.<p>HTML, its supporting DOM APIs, as well as many of its supporting
@@ -22117,25 +22117,28 @@
   agent must wait for the steps to complete, and then must immediately
   rerun the steps. (These steps are thus run as often as possible or
   needed &mdash; if one iteration takes a long time, this can cause
-  certain ranges to be skipped over as the user agent rushes ahead to
-  "catch up".)</p>
+  certain <span title="timed track cue">cues</span> to be skipped over
+  as the user agent rushes ahead to "catch up".)</p>
 
-  <ol><!--XXXTT - the text below is wrong, but we need to do something similar, updating the timed tracks, pausing if necessary (more below)
-   <li><p>Let <var title="">current ranges</var> be an ordered list of
-   <span title="cue range">cue ranges</span>, initialized to contain
-   all the <span title="cue range">cue ranges</span> of the
-   <span>media element</span> whose start times are less than or equal
-   to the <span>current playback position</span> and whose end times
-   are greater than the <span>current playback position</span>, in the
-   order they were added to the element.</p></li>
+  <ol><li><p>Let <var title="">current cues</var> be an ordered list of
+   <span title="timed track cue">cues</span>, initialized to contain
+   all the <span title="timed track cue">cues</span> of all the <span title="timed track hidden">hidden</span> or <span title="timed
+   track showing">showing</span> <span title="timed track">timed
+   tracks</span> of the <a href="#media-element">media element</a> (not not the <span title="timed track disabled">disabled</span> ones) whose <span title="timed track cue start time">start times</span> are less than
+   or equal to the <a href="#current-playback-position">current playback position</a> and whose
+   <span title="timed track cue end time">end times</span> are greater
+   than the <a href="#current-playback-position">current playback position</a>, in <span>timed
+   track cue order</span>.</li>
 
-   <li><p>Let <var title="">other ranges</var> be an ordered list of
-   <span title="cue range">cue ranges</span>, initialized to contain
-   all the <span title="cue range">cue ranges</span> of the
-   <span>media element</span> that are not present in <var
-   title="">current ranges</var>, in the order they were added to the
-   element.</p></li>
---><li><p>If the time was reached through the usual monotonic increase
+   <li><p>Let <var title="">other cues</var> be an ordered list of
+   <span title="timed track cue">cues</span>, initialized to contain
+   all the <span title="timed track cue">cues</span> of <span title="timed track hidden">hidden</span> and <span title="timed
+   track showing">showing</span> <span title="timed track">timed
+   tracks</span> of the <a href="#media-element">media element</a> that are not
+   present in <var title="">current cues</var>, also in <span>timed
+   track cue order</span>.</li>
+
+   <li><p>If the time was reached through the usual monotonic increase
    of the current playback position during normal playback, and if the
    user agent has not fired a <code title="event-media-timeupdate"><a href="#event-media-timeupdate">timeupdate</a></code> event at the
    element in the past 15 to 250ms and is not still running event
@@ -22153,47 +22156,69 @@
    not any more frequent than the user agent can comfortably handle
    while decoding the video.</li>
 
-<!--XXXTT [beware - - nested comments]
-   <li><p>If none of the <span title="cue range">cue ranges</span> in
-   <var title="">current ranges</var> have their "active" boolean set
-   to "false" (inactive) and none of the <span title="cue range">cue
-   ranges</span> in <var title="">other ranges</var> have their
-   "active" boolean set to "true" (active), then abort these
-   steps.</p></li>
+   <li><p>If all of the <span title="timed track cue">cues</span> in
+   <var title="">current cues</var> have their <span>timed track cue
+   active flag</span> set, and none of the <span title="timed track
+   cue">cues</span> in <var title="">other cues</var> have their
+   <span>timed track cue active flag</span> set, then abort these
+   steps.</li>
 
    <li><p>If the time was reached through the usual monotonic increase
    of the current playback position during normal playback, and there
-   are <span title="cue range">cue ranges</span> in <var
-   title="">other ranges</var> that have both their "active" boolean
-   and their "pause" boolean set to "true", then immediately act as if
-   the element's <code title="dom-media-pause">pause()</code> method
-   had been invoked. <!- - pause() can in theory call load(), but never
-   can it do so as part of this invokation, since we wouldn't be in
-   this algorithm if the media element was empty. So, no need to couch
-   all this in a task. - -> (In the other cases, such as explicit
-   seeks, playback is not paused by exiting a cue range, even if that
-   cue range has its "pause" boolean set to "true".)</p></li>
+   are <span title="timed track cue">cues</span> in <var title="">other cues</var> that have both their <span>timed track
+   cue active flag</span> set and their <span>timed track cue
+   pause-on-exit flag</span> set, then immediately act as if the
+   element's <code title="dom-media-pause"><a href="#dom-media-pause">pause()</a></code> method had
+   been invoked. <!-- pause() can in theory call load(), but never can
+   it do so as part of this invokation, since we wouldn't be in this
+   algorithm if the media element was empty. So, no need to couch all
+   this in a task. --> (In the other cases, such as explicit seeks,
+   playback is not paused by going past the end time of a <span title="timed track cue">cue</span>, even if that <span title="timed
+   track cue">cue</span> has its <span>timed track cue pause-on-exit
+   flag</span> set.)</li>
 
-   <li><p>For each non-null "exit" callback of the <span
-   title="cue range">cue ranges</span> in <var title="">other
-   ranges</var> that have their "active" boolean set to "true"
-   (active), in list order, <span>queue a task</span> that invokes the
-   callback, passing the cue range's identifier as the callback's only
-   argument.</p></li>
+   <li><p>Let <var title="">affected tracks</var> be a list of <span title="timed track">timed tracks</span>, initially empty.</li>
 
-   <li><p>For each non-null "enter" callback of the <span title="cue
-   range">cue ranges</span> in <var title="">current ranges</var> that
-   have their "active" boolean set to "false" (inactive), in list
-   order, <span>queue a task</span> that invokes the callback, passing
-   the cue range's identifier as the callback's only
-   argument.</p></li>
+   <li><p>For each <span title="timed track cue">timed track
+   cue</span> in <var title="">other cues</var> that has its
+   <span>timed track cue active flag</span> set, in list order,
+   <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple event</a> named
+   <code title="event-exit">exit</code> at the
+   <code>TimedTrackCue</code> object, and add the <span title="timed
+   track cue">cue</span>'s <span>timed track</span> to <var title="">affected tracks</var>, if it's not already in the
+   list.</li>
+
+   <li><p>For each <span title="timed track cue">timed track
+   cue</span> in <var title="">current cues</var> that does not have
+   its <span>timed track cue active flag</span> set, in list order,
+   <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a simple event</a> named
+   <code title="event-enter">enter</code> at the
+   <code>TimedTrackCue</code> object, and add the <span title="timed
+   track cue">cue</span>'s <span>timed track</span> to <var title="">affected tracks</var>, if it's not already in the
+   list.</li>
+
+   <li><p>For each <span>timed track</span> in <var title="">affected
+   tracks</var>, in the order they were added to the list (which will
+   match the relative order of the <span title="timed track">timed
+   tracks</span> in the <a href="#media-element">media element</a>'s <span>list of
+   timed tracks</span>), <a href="#queue-a-task">queue a task</a> to <a href="#fire-a-simple-event">fire a
+   simple event</a> named <code title="event-cuechange">cuechange</code> at the
+   <code>TimedTrack</code> object, and, if the <span>timed
+   track</span> has a corresponding <code>track</code> element, to
+   then <a href="#fire-a-simple-event">fire a simple event</a> named <code title="event-cuechange">cuechange</code> at the <code>track</code>
+   element as well.</li>
+
+   <li><p>Set the <span>timed track cue active flag</span> of all the
+   <span title="timed track cue">cues</span> in the <var title="">current cues</var>, and unset the <span>timed track cue
+   active flag</span> of all the <span title="timed track
+   cue">cues</span> in the <var title="">other cues</var>.</li>
+
+   <li><p>Run the rules for rendering the cues of each of the <span title="timed track">timed tracks</span> in <var title="">affected
+   tracks</var> that are <span title="timed track
+   showing">showing</span> (e.g., for <span title="timed track">timed
+   tracks</span> based on <span>WebSRT</span>, the <span>rules for
+   updating the display of WebSRT timed tracks</span>).</li>
 
-   <li><p>Set the "active" boolean of all the <span title="cue
-   range">cue ranges</span> in the <var title="">current ranges</var>
-   list to "true" (active), and the "active" boolean of all the <span
-   title="cue range">cue ranges</span> in the <var title="">other
-   ranges</var> list to "false" (inactive).</p></li>
--->
   </ol><p>When a <a href="#media-element">media element</a> is <a href="#remove-an-element-from-a-document" title="remove an
   element from a document">removed from a
   <code>Document</code></a>, if the <a href="#media-element">media element</a>'s

Received on Friday, 2 July 2010 22:58:00 UTC