html5/spec Overview.html,1.1575,1.1576

Update of /sources/public/html5/spec
In directory hutz:/tmp/cvs-serv23630

Modified Files:
	Overview.html 
Log Message:
Make <source type> optional. Move canPlayType from navigator to HTMLMediaElement. Make it return a string instead of an integer. Fix up the candidate URL list generation. Make loadstart/play event sequencing deterministic. (whatwg r2404)

Index: Overview.html
===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.1575
retrieving revision 1.1576
diff -u -d -r1.1575 -r1.1576
--- Overview.html	14 Nov 2008 06:50:28 -0000	1.1575
+++ Overview.html	15 Nov 2008 19:28:51 -0000	1.1576
@@ -8,7 +8,7 @@
    <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>HTML 5</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=editor-s-draft-date-zzz-9-june-2008><!-- "W3C Working Draft" --> Editor's Draft <!--ZZZ-->14 November 2008</h2>
+   <h2 class="no-num no-toc" id=editor-s-draft-date-zzz-9-june-2008><!-- "W3C Working Draft" --> Editor's Draft <!--ZZZ-->15 November 2008</h2>
    <dl><!-- ZZZ: update the month/day
     <dt>This Version:</dt>
     <dd><a href="http://www.w3.org/TR/2008/WD-html5-20080610/">http://www.w3.org/TR/2008/WD-html5-20080610/</a></dd>
@@ -97,7 +97,7 @@
   specification's progress along the W3C Recommendation
   track.
   <!--ZZZ:-->
-  This specification is the 14 November 2008 <!--ZZZ "Working Draft"-->Editor's Draft.
+  This specification is the 15 November 2008 <!--ZZZ "Working Draft"-->Editor's Draft.
   <!--:ZZZ-->
   </p><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- relationship to other work (required) --><p>This specification is also being produced by the <a href=http://www.whatwg.org/>WHATWG</a>. The two specifications are
   identical from the table of contents onwards.</p><!-- UNDER NO CIRCUMSTANCES IS THE FOLLOWING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- UNDER NO CIRCUMSTANCES IS THE PRECEDING PARAGRAPH TO BE REMOVED OR EDITED WITHOUT TALKING TO IAN FIRST --><!-- context and rationale (required) --><p>This specification is intended to replace (be a new version of)
@@ -375,18 +375,19 @@
       <ol>
        <li><a href=#error-codes><span class=secno>4.8.10.1 </span>Error codes</a></li>
        <li><a href=#location-of-the-media-resource><span class=secno>4.8.10.2 </span>Location of the media resource</a></li>
-       <li><a href=#network-states><span class=secno>4.8.10.3 </span>Network states</a></li>
-       <li><a href=#loading-the-media-resource><span class=secno>4.8.10.4 </span>Loading the media resource</a></li>
-       <li><a href=#offsets-into-the-media-resource><span class=secno>4.8.10.5 </span>Offsets into the media resource</a></li>
-       <li><a href=#the-ready-states><span class=secno>4.8.10.6 </span>The ready states</a></li>
-       <li><a href=#cue-ranges><span class=secno>4.8.10.7 </span>Cue ranges</a></li>
-       <li><a href=#playing-the-media-resource><span class=secno>4.8.10.8 </span>Playing the media resource</a></li>
-       <li><a href=#seeking><span class=secno>4.8.10.9 </span>Seeking</a></li>
-       <li><a href=#user-interface><span class=secno>4.8.10.10 </span>User interface</a></li>
-       <li><a href=#time-ranges><span class=secno>4.8.10.11 </span>Time ranges</a></li>
-       <li><a href=#byte-ranges><span class=secno>4.8.10.12 </span>Byte ranges</a></li>
-       <li><a href=#mediaevents><span class=secno>4.8.10.13 </span>Event summary</a></li>
-       <li><a href=#security-and-privacy-considerations><span class=secno>4.8.10.14 </span>Security and privacy considerations</a></ol></li>
+       <li><a href=#media-types><span class=secno>4.8.10.3 </span>Media types</a></li>
+       <li><a href=#network-states><span class=secno>4.8.10.4 </span>Network states</a></li>
+       <li><a href=#loading-the-media-resource><span class=secno>4.8.10.5 </span>Loading the media resource</a></li>
+       <li><a href=#offsets-into-the-media-resource><span class=secno>4.8.10.6 </span>Offsets into the media resource</a></li>
+       <li><a href=#the-ready-states><span class=secno>4.8.10.7 </span>The ready states</a></li>
+       <li><a href=#cue-ranges><span class=secno>4.8.10.8 </span>Cue ranges</a></li>
+       <li><a href=#playing-the-media-resource><span class=secno>4.8.10.9 </span>Playing the media resource</a></li>
+       <li><a href=#seeking><span class=secno>4.8.10.10 </span>Seeking</a></li>
+       <li><a href=#user-interface><span class=secno>4.8.10.11 </span>User interface</a></li>
+       <li><a href=#time-ranges><span class=secno>4.8.10.12 </span>Time ranges</a></li>
+       <li><a href=#byte-ranges><span class=secno>4.8.10.13 </span>Byte ranges</a></li>
+       <li><a href=#mediaevents><span class=secno>4.8.10.14 </span>Event summary</a></li>
+       <li><a href=#security-and-privacy-considerations><span class=secno>4.8.10.15 </span>Security and privacy considerations</a></ol></li>
      <li><a href=#the-canvas-element><span class=secno>4.8.11 </span>The <code>canvas</code> element</a>
       <ol>
        <li><a href=#the-2d-context><span class=secno>4.8.11.1 </span>The 2D context</a>
@@ -595,8 +596,7 @@
      <li><a href=#custom-handlers><span class=secno>5.6.2 </span>Custom protocol and content handlers</a>
       <ol>
        <li><a href=#security-and-privacy><span class=secno>5.6.2.1 </span>Security and privacy</a></li>
-       <li><a href=#sample-handler-impl><span class=secno>5.6.2.2 </span>Sample user interface</a></ol></li>
-     <li><a href=#client-abilities><span class=secno>5.6.3 </span>Client abilities</a></ol></li>
+       <li><a href=#sample-handler-impl><span class=secno>5.6.2.2 </span>Sample user interface</a></ol></ol></li>
    <li><a href=#offline><span class=secno>5.7 </span>Offline Web applications</a>
     <ol>
      <li><a href=#introduction-0><span class=secno>5.7.1 </span>Introduction</a></li>
@@ -13601,10 +13601,10 @@
   be a <a href=#valid-url>valid URL</a>. This attribute must be present.<p>The <dfn id=attr-source-type title=attr-source-type><code>type</code></dfn>
   attribute gives the type of the <a href=#media-resource>media resource</a>, to help
   the user agent determine if it can play this <a href=#media-resource>media
-  resource</a> before fetching it. Its value must be a MIME
-  type. The <code title="">codecs</code> parameter may be specified
-  and might be necessary to specify exactly how the resource is
-  encoded. <a href=#references>[RFC2046]</a> <a href=#references>[RFC4281]</a><div class=example>
+  resource</a> before fetching it. If specified, its value must be
+  a MIME type. The <code title="">codecs</code> parameter may be
+  specified and might be necessary to specify exactly how the resource
+  is encoded. <a href=#references>[RFC2046]</a> <a href=#references>[RFC4281]</a><div class=example>
 
    <p>The following list shows some examples of how to use the <code title="">codecs=</code> MIME parameter in the <code title=attr-source-type><a href=#attr-source-type>type</a></code> attribute.</p>
 
@@ -13693,10 +13693,7 @@
   attribute gives the intended media type of the <a href=#media-resource>media
   resource</a>, to help the user agent determine if this
   <a href=#media-resource>media resource</a> is useful to the user before fetching
-  it. Its value must be a valid <a href=#mq>media query</a>. <a href=#references>[MQ]</a><p>Either the <code title=attr-source-type><a href=#attr-source-type>type</a></code> attribute,
-  the <code title=attr-source-media><a href=#attr-source-media>media</a></code> attribute or both,
-  must be specified, unless this is the last <code><a href=#the-source-element>source</a></code>
-  element child of the parent element.<p>The <dfn id=attr-source-pixelratio title=attr-source-pixelratio><code>pixelratio</code></dfn>
+  it. Its value must be a valid <a href=#mq>media query</a>. <a href=#references>[MQ]</a><p>The <dfn id=attr-source-pixelratio title=attr-source-pixelratio><code>pixelratio</code></dfn>
   attribute allows the author to specify the pixel ratio of anamorphic
   <a href=#media-resource title="media resource">media resources</a> that do not
   self-describe their <a href=#concept-video-adjusted-ratio title=concept-video-adjusted-ratio>pixel
@@ -13740,6 +13737,7 @@
   readonly attribute <a href=#byteranges>ByteRanges</a> <a href=#dom-media-bufferedbytes title=dom-media-bufferedBytes>bufferedBytes</a>;
   readonly attribute unsigned long <a href=#dom-media-totalbytes title=dom-media-totalBytes>totalBytes</a>;
   void <a href=#dom-media-load title=dom-media-load>load</a>();
+  DOMString <a href=#dom-navigator-canplaytype title=dom-navigator-canPlayType>canPlayType</a>(in DOMString type);
 
   // ready state
   const unsigned short <a href=#dom-media-have_nothing title=dom-media-HAVE_NOTHING>HAVE_NOTHING</a> = 0;
@@ -13818,9 +13816,7 @@
   implicit loads. Unless otherwise specified, the <a href=#task-source>task
   source</a> for all the tasks <a href=#queue-a-task title="queue a
   task">queued</a> in this section and its subsections is the
-  <a href=#media-element-event-task-source>media element event task source</a>.<p>The <code title=dom-navigator-canPlayType><a href=#dom-navigator-canplaytype>canPlayType()</a></code>
-  method can be used to probe the user agent to determine what types
-  are supported.<h5 id=error-codes><span class=secno>4.8.10.1 </span>Error codes</h5><p>All <a href=#media-element title="media element">media elements</a> have an
+  <a href=#media-element-event-task-source>media element event task source</a>.<h5 id=error-codes><span class=secno>4.8.10.1 </span>Error codes</h5><p>All <a href=#media-element title="media element">media elements</a> have an
   associated error status, which records the last error the element
   encountered since the <code title=dom-media-load><a href=#dom-media-load>load()</a></code>
   method was last invoked. The <dfn id=dom-media-error title=dom-media-error><code>error</code></dfn> attribute, on
@@ -13928,21 +13924,22 @@
 
     <p>If all the following conditions are true:</p>
 
-    <ul><li>The <var title="">candidate</var> element has a <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute</li>
+    <ul><li>The <var title="">candidate</var> element has a <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute.</li>
 
      <li><a href=#resolve-a-url title="resolve a url">Resolving</a> the
      <a href=#url>URL</a> given by the <var title="">candidate</var>
      element's <code title=attr-source-src><a href=#attr-source-src>src</a></code> attribute does
-     not fail</li>
+     not fail.</li>
 
-     <li>The <var title="">candidate</var> element has a <code title=attr-source-type><a href=#attr-source-type>type</a></code> attribute and that
-     attribute's value, when parsed as a MIME type (including any
-     codecs described by the <code title="">codec</code> parameter),
-     does not represent a type that the user agent knows it cannot
-     render <a href=#references>[RFC2046]</a> <a href=#references>[RFC4281]</a></li>
+     <li>The <var title="">candidate</var> element either has no <code title=attr-source-type><a href=#attr-source-type>type</a></code> attribute, or its <code title=attr-source-type><a href=#attr-source-type>type</a></code> attribute's value, when
+     parsed as a MIME type (including any codecs described by the
+     <code title="">codec</code> parameter), does not represent
+     <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a type that the user agent knows it cannot
+     render</a>.</li>
 
-     <li>The <var title="">candidate</var> element has a <code title=attr-source-media><a href=#attr-source-media>media</a></code> attribute and that
-     attribute's value, when processed according to the rules for <a href=#mq>media queries</a>, matches the current environment <a href=#references>[MQ]</a></li>
+     <li>The <var title="">candidate</var> element either has no <code title=attr-source-media><a href=#attr-source-media>media</a></code> attribute, or its <code title=attr-source-media><a href=#attr-source-media>media</a></code> attribute's value, when
+     processed according to the rules for <a href=#mq>media
+     queries</a>, matches the current environment. <a href=#references>[MQ]</a></li>
 
     </ul><p>...then append an item to the <var title="">result</var> list
     consisting of the <a href=#absolute-url>absolute URL</a> resulting from <a href=#resolve-a-url title="resolve a url">resolving</a> the <a href=#url>URL</a> given
@@ -13962,7 +13959,61 @@
 
    <li><p>Return <var title="">result</var>.</li>
 
-  </ol><h5 id=network-states><span class=secno>4.8.10.3 </span>Network states</h5><p>As <a href=#media-element title="media element">media elements</a> interact
+  </ol><h5 id=media-types><span class=secno>4.8.10.3 </span>Media types</h5><p>A <a href=#media-resource>media resource</a> can be described in terms of its
+  <em>type</em>, specifically a MIME type, optionally with a <code title="">codecs</code> parameter. <a href=#references>[RFC2046]</a> <a href=#references>[RFC4281]</a>.<p>Types are usually somewhat incomplete descriptions; for example
+  "<code title="">video/mpeg</code>" doesn't say anything except what
+  the container type is, and even a type like "<code title="">video/mp4; codecs="avc1.42E01E,
+  mp4a.40.2"</code>" doesn't include information like the actual
+  bitrate (only the maximum bitrate). Thus, given a type, a user agent
+  can often only know whether it <em>might</em> be able to play
+  media of that type (with varying levels of confidence), or whether
+  it definitely <em>cannot</em> play media of that type.<p><dfn id=a-type-that-the-user-agent-knows-it-cannot-render>A type that the user agent knows it cannot render</dfn> is
+  one that describes a resource that the user agent definitely does
+  not support, for example because it doesn't recognise the container
+  type, or it doesn't support the listed codecs.<p>The <dfn id=dom-navigator-canplaytype title=dom-navigator-canPlayType><code>canPlayType(<var title="">type</var>)</code></dfn> method must return the string
+  "<code title="">no</code>" if <var title="">type</var> is <a href=#a-type-that-the-user-agent-knows-it-cannot-render>a
+  type that the user agent knows it cannot render</a>; it must
+  return "<code title="">probably</code>" if the user agent is
+  confident that the type represents a <a href=#media-resource>media resource</a>
+  that it can render if used in with this <code><a href=#audio>audio</a></code> or
+  <code><a href=#video>video</a></code> element; and it must return "<code title="">maybe</code>" otherwise. Implementors are encouraged to
+  return "<code title="">maybe</code>" unless the type can be
+  confidently established as being supported or not. Generally, a user
+  agent should never return "<code title="">probably</code>" if the
+  type doesn't have a <code title="">codecs</code> parameter.<div class=example>
+
+   <p>This script tests to see if the user agent supports a
+   (fictional) new format to dynamically decide whether to use a
+   <code><a href=#video>video</a></code> element or a plugin:</p>
+
+   <pre>&lt;section id="video"&gt;
+ &lt;p&gt;&lt;a href="playing-cats.nfv"&gt;Download video&lt;/a&gt;&lt;/p&gt;
+&lt;/section&gt;
+&lt;script&gt;
+ var videoSection = document.getElementById('video');
+ var videoElement = document.createElement('video');
+ var support = videoElement.canPlayType('video/x-new-fictional-format;codecs="kittens,bunnies"');
+ if (support != "probably" &amp;&amp; "New Fictional Video Plug-in" in navigator.plugins) {
+   // not confident of browser support
+   // but we have a plugin
+   // so use plugin instead
+   videoElement = document.createElement("embed");
+ } else if (support == "no") {
+   // no support from browser and no plugin
+   // do nothing
+   videoElement = null;
+ }
+ if (videoElement) {
+   while (videoSection.hasChildNodes())
+     videoSection.removeChild(videoSection.firstChild);
+   videoElement.setAttribute("src", "playing-cats.nfv");
+   videoSection.appendChild(videoElement);
+ }
+&lt;/script&gt;</pre>
+
+  </div><p class=note>To express the type of a <a href=#media-resource>media resource</a>
+  to allow the user agent to avoid downloading resources it can't
+  render, authors can use the <code><a href=#the-source-element>source</a></code> element's <code title=attr-source-type><a href=#attr-source-type>type</a></code> attribute.<h5 id=network-states><span class=secno>4.8.10.4 </span>Network states</h5><p>As <a href=#media-element title="media element">media elements</a> interact
   with the network, their current network activity is represented by
   the <dfn id=dom-media-networkstate title=dom-media-networkState><code>networkState</code></dfn>
   attribute. On getting, it must return the current network state of
@@ -13990,7 +14041,7 @@
   </dl><p>The algorithm for the <code title=dom-media-load><a href=#dom-media-load>load()</a></code>
   method defined below describes exactly when the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> attribute changes
   value and what events fire to indicate changes in this state.<p class=note>Some resources, e.g. streaming Web radio, can never
-  reach the <code title=dom-media-NETWORK_LOADED><a href=#dom-media-network_loaded>NETWORK_LOADED</a></code> state.<h5 id=loading-the-media-resource><span class=secno>4.8.10.4 </span>Loading the media resource</h5><p>All <a href=#media-element title="media element">media elements</a> have a
+  reach the <code title=dom-media-NETWORK_LOADED><a href=#dom-media-network_loaded>NETWORK_LOADED</a></code> state.<h5 id=loading-the-media-resource><span class=secno>4.8.10.5 </span>Loading the media resource</h5><p>All <a href=#media-element title="media element">media elements</a> have a
   <dfn id=begun-flag>begun flag</dfn>, which must begin in the false state, and an
   <dfn id=autoplaying-flag>autoplaying flag</dfn>, which must begin in the true state.<p>When the <dfn id=dom-media-load title=dom-media-load><code>load()</code></dfn>
   method on a <a href=#media-element>media element</a> is invoked, the user agent
@@ -14074,6 +14125,10 @@
 
    <li><p>Set the <code title=dom-media-networkState><a href=#dom-media-networkstate>networkState</a></code> to <code title=dom-media-NETWORK_LOADING><a href=#dom-media-network_loading>NETWORK_LOADING</a></code>.</li>
 
+   <li><p>Set the <a href=#begun-flag>begun flag</a> to true and <a href=#queue-a-task>queue a
+   task</a> to <a href=#fire-a-progress-event>fire a progress event</a> called <code title=event-loadstart><a href=#event-loadstart>loadstart</a></code> at the <a href=#media-element>media
+   element</a>.</li>
+
    <li>
 
     <p>The method must return, but these steps must continue.</p>
@@ -14087,10 +14142,6 @@
    <!-- SYNCHRONOUS / ASYNCHRONOUS BOUNDARY FOR EVENT DISPATCH -->
 
 
-   <li><p>Set the <a href=#begun-flag>begun flag</a> to true and <a href=#queue-a-task>queue a
-   task</a> to <a href=#fire-a-progress-event>fire a progress event</a> called <code title=event-loadstart><a href=#event-loadstart>loadstart</a></code> at the <a href=#media-element>media
-   element</a>.</li>
-
    <li>
 
     <p><i>Candidate loop</i>: For each item in <var title="">candidates</var>, if any, and in the same order as they
@@ -14405,7 +14456,7 @@
   available, the attribute must return 0.<p>User agents may discard previously buffered data.<p class=note>Thus, a time or byte position included within a
   range of the objects return by the <code title=dom-media-buffered><a href=#dom-media-buffered>buffered</a></code> or <code title=dom-media-bufferedBytes><a href=#dom-media-bufferedbytes>bufferedBytes</a></code> attributes at
   one time can end up being not included in the range(s) of objects
-  returned by the same attributes at a later time.<h5 id=offsets-into-the-media-resource><span class=secno>4.8.10.5 </span>Offsets into the media resource</h5><p>The <dfn id=dom-media-duration title=dom-media-duration><code>duration</code></dfn>
+  returned by the same attributes at a later time.<h5 id=offsets-into-the-media-resource><span class=secno>4.8.10.6 </span>Offsets into the media resource</h5><p>The <dfn id=dom-media-duration title=dom-media-duration><code>duration</code></dfn>
   attribute must return the length of the <a href=#media-resource>media resource</a>,
   in seconds. If no <a href=#media-data>media data</a> is available, then the
   attributes must return 0. If <a href=#media-data>media data</a> is available
@@ -14436,7 +14487,7 @@
   indicates that the <a href=#media-element>media element</a> is to seek back to the
   start of the <a href=#media-resource>media resource</a> upon reaching the end.<p>The <dfn id=dom-media-loop title=dom-media-loop><code>loop</code></dfn> DOM
   attribute must <a href=#reflect>reflect</a> the content attribute of the
-  same name.<h5 id=the-ready-states><span class=secno>4.8.10.6 </span>The ready states</h5><p><a href=#media-element title="media element">Media elements</a> have a
+  same name.<h5 id=the-ready-states><span class=secno>4.8.10.7 </span>The ready states</h5><p><a href=#media-element title="media element">Media elements</a> have a
   <i>ready state</i>, which describes to what degree they are ready
   to be rendered at the <a href=#current-playback-position>current playback position</a>. The
   possible values are as follows; the ready state of a media element
@@ -14576,7 +14627,7 @@
   automatically begin playback of the <a href=#media-resource>media resource</a> as
   soon as it can do so without stopping.<p>The <dfn id=dom-media-autoplay title=dom-media-autoplay><code>autoplay</code></dfn>
   DOM attribute must <a href=#reflect>reflect</a> the content attribute of the
-  same name.<h5 id=cue-ranges><span class=secno>4.8.10.7 </span>Cue ranges</h5><p><a href=#media-element title="media element">Media elements</a> have a set of
+  same name.<h5 id=cue-ranges><span class=secno>4.8.10.8 </span>Cue ranges</h5><p><a href=#media-element title="media element">Media elements</a> have a set of
   <dfn id=cue-range title="cue range">cue ranges</dfn>. Each cue range is made up
   of the following information:<dl><dt>A class name</dt>
    <dd>A group of related ranges can be given the same class name so
@@ -14615,7 +14666,7 @@
   than the start time and less than the end time, and false
   otherwise.<p>The <dfn id=dom-media-removecueranges title=dom-media-removeCueRanges><code>removeCueRanges(<var title="">className</var>)</code></dfn> method must, when called,
   remove all the <a href=#cue-range title="cue range">cue ranges</a> of the
-  <a href=#media-element>media element</a> which have the class name <var title="">className</var>.<h5 id=playing-the-media-resource><span class=secno>4.8.10.8 </span>Playing the media resource</h5><p>The <dfn id=dom-media-paused title=dom-media-paused><code>paused</code></dfn>
+  <a href=#media-element>media element</a> which have the class name <var title="">className</var>.<h5 id=playing-the-media-resource><span class=secno>4.8.10.9 </span>Playing the media resource</h5><p>The <dfn id=dom-media-paused title=dom-media-paused><code>paused</code></dfn>
   attribute represents whether the <a href=#media-element>media element</a> is
   paused or not. The attribute must initially be true.<p>A <a href=#media-element>media element</a> is said to be <dfn id=potentially-playing>potentially
   playing</dfn> when its <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code>
@@ -14746,7 +14797,7 @@
 
    <li><p>If the fourth step above changed the value of <code title=dom-media-paused><a href=#dom-media-paused>paused</a></code>, the user agent must
    <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple event</a>
-   called <code title=event-pause><a href=#event-pause>play</a></code> at the
+   called <code title=event-play><a href=#event-play>play</a></code> at the
    element.</li>
 
   </ol><hr><p>When the <dfn id=dom-media-pause title=dom-media-pause><code>pause()</code></dfn>
@@ -14871,7 +14922,7 @@
   agent must act as if the <code title=dom-media-pause><a href=#dom-media-pause>pause()</a></code> method had been invoked.<p class=note>If the <a href=#media-element>media element</a>'s
   <code>Document</code> stops being an active document, then the
   playback will <a href=#media-playback>stop</a> until the document
-  is active again.<h5 id=seeking><span class=secno>4.8.10.9 </span>Seeking</h5><p>The <dfn id=dom-media-seeking title=dom-media-seeking><code>seeking</code></dfn>
+  is active again.<h5 id=seeking><span class=secno>4.8.10.10 </span>Seeking</h5><p>The <dfn id=dom-media-seeking title=dom-media-seeking><code>seeking</code></dfn>
   attribute must initially have the value false.<p>When the user agent is required to <dfn id=dom-media-seek title=dom-media-seek>seek</dfn> to a particular <var title="">new
   playback position</var> in the <a href=#media-resource>media resource</a>, it means
   that the user agent must run the following steps:<ol><li><p>If the <a href=#media-element>media element</a>'s <code title=dom-media-readyState><a href=#dom-media-readystate>readyState</a></code> is <code title=dom-media-HAVE_NOTHING><a href=#dom-media-have_nothing>HAVE_NOTHING</a></code>, then the user
@@ -14950,7 +15001,7 @@
   element</a> could play in a non-linear fashion. If this happens,
   the user agent must act as if the algorithm for <a href=#dom-media-seek title=dom-media-seek>seeking</a> was used whenever the
   <a href=#current-playback-position>current playback position</a> changes in a discontinuous
-  fashion (so that the relevant events fire).<h5 id=user-interface><span class=secno>4.8.10.10 </span>User interface</h5><p>The <dfn id=attr-media-controls title=attr-media-controls><code>controls</code></dfn>
+  fashion (so that the relevant events fire).<h5 id=user-interface><span class=secno>4.8.10.11 </span>User interface</h5><p>The <dfn id=attr-media-controls title=attr-media-controls><code>controls</code></dfn>
   attribute is a <a href=#boolean-attribute>boolean attribute</a>. If the attribute is
   present, or if the <a href=#media-element>media element</a> is <a href=#without-script>without
   script</a>, then the user agent should <dfn id=expose-a-user-interface-to-the-user>expose a user
@@ -14999,7 +15050,7 @@
   <code title=dom-media-volume><a href=#dom-media-volume>volume</a></code> attributes are changed,
   the user agent must <a href=#queue-a-task>queue a task</a> to <a href=#fire-a-simple-event>fire a simple
   event</a> called <code title=event-volumechange><a href=#event-volumechange>volumechange</a></code> at the <a href=#media-element>media
-  element</a>.<h5 id=time-ranges><span class=secno>4.8.10.11 </span>Time ranges</h5><p>Objects implementing the <code><a href=#timeranges>TimeRanges</a></code> interface
+  element</a>.<h5 id=time-ranges><span class=secno>4.8.10.12 </span>Time ranges</h5><p>Objects implementing the <code><a href=#timeranges>TimeRanges</a></code> interface
   represent a list of ranges (periods) of time.<pre class=idl>interface <dfn id=timeranges>TimeRanges</dfn> {
   readonly attribute unsigned long <a href=#dom-timeranges-length title=dom-TimeRanges-length>length</a>;
   float <a href=#dom-timeranges-start title=dom-TimeRanges-start>start</a>(in unsigned long index);
@@ -15024,7 +15075,7 @@
   </ul><p>In other words, the ranges in such an object are ordered, don't
   overlap, aren't empty, and don't touch (adjacent ranges are folded
   into one bigger range).<p>The timelines used by the objects returned by the <code title=dom-media-buffered><a href=#dom-media-buffered>buffered</a></code>, <code title=dom-media-seekable><a href=#dom-media-seekable>seekable</a></code> and <code title=dom-media-played><a href=#dom-media-played>played</a></code> DOM attributes of <a href=#media-element title="media element">media elements</a> must be the same as that
-  element's <a href=#media-resource>media resource</a>'s timeline.<h5 id=byte-ranges><span class=secno>4.8.10.12 </span>Byte ranges</h5><p>Objects implementing the <code><a href=#byteranges>ByteRanges</a></code> interface
+  element's <a href=#media-resource>media resource</a>'s timeline.<h5 id=byte-ranges><span class=secno>4.8.10.13 </span>Byte ranges</h5><p>Objects implementing the <code><a href=#byteranges>ByteRanges</a></code> interface
   represent a list of ranges of bytes.<pre class=idl>interface <dfn id=byteranges>ByteRanges</dfn> {
   readonly attribute unsigned long <a href=#dom-byteranges-length title=dom-ByteRanges-length>length</a>;
   unsigned long <a href=#dom-byteranges-start title=dom-ByteRanges-start>start</a>(in unsigned long index);
@@ -15050,7 +15101,7 @@
 
   </ul><p>In other words, the ranges in such an object are ordered, don't
   overlap, aren't empty, and don't touch (adjacent ranges are folded
-  into one bigger range).<h5 id=mediaevents><span class=secno>4.8.10.13 </span>Event summary</h5><p>The following events fire on <a href=#media-element title="media element">media
+  into one bigger range).<h5 id=mediaevents><span class=secno>4.8.10.14 </span>Event summary</h5><p>The following events fire on <a href=#media-element title="media element">media
   elements</a> as part of the processing model described above:<table><thead><tr><th>Event name
      <th>Interface
      <th>Dispatched when...
@@ -15150,7 +15201,7 @@
      <td><code>Event</code>
      <td>Either the <code title=dom-media-volume><a href=#dom-media-volume>volume</a></code> attribute or the <code title=dom-media-muted><a href=#dom-media-muted>muted</a></code> attribute has changed. Fired after the relevant attribute's setter has returned.
      <td>
-  </table><h5 id=security-and-privacy-considerations><span class=secno>4.8.10.14 </span>Security and privacy considerations</h5><p class=XXX>Talk about making sure interactive media files
+  </table><h5 id=security-and-privacy-considerations><span class=secno>4.8.10.15 </span>Security and privacy considerations</h5><p class=XXX>Talk about making sure interactive media files
   (e.g. SVG) don't have access to the container DOM (XSS potential);
   talk about not exposing any sensitive data like metadata from tracks
   in the media files (intranet snooping risk)<h4 id=the-canvas-element><span class=secno>4.8.11 </span>The <dfn id=canvas><code>canvas</code></dfn> element</h4><dl class=element><dt>Categories</dt>
@@ -27421,18 +27472,18 @@
   readonly attribute boolean <a href=#dom-navigator-online title=dom-navigator-onLine>onLine</a>;
 };
 
-[NoInterfaceObject] interface <dfn id=navigatorbrowsingcontextabilities>NavigatorBrowsingContextAbilities</dfn> {
+[NoInterfaceObject] interface <dfn id=navigatorabilities>NavigatorAbilities</dfn> {
   // content handler registration
   void <a href=#dom-navigator-registerprotocolhandler title=dom-navigator-registerProtocolHandler>registerProtocolHandler</a>(in DOMString protocol, in DOMString url, in DOMString title);
   void <a href=#dom-navigator-registercontenthandler title=dom-navigator-registerContentHandler>registerContentHandler</a>(in DOMString mimeType, in DOMString url, in DOMString title);
-<!--  XXX cookieEnabled geolocator javaEnabled mozIsLocallyAvailable plugins preference
-  readonly attribute <span>MimeTypeArray</span> <span title="dom-navigator-mimeTypes">mimeTypes</span>;-->
-  // abilities
-  short <a href=#dom-navigator-canplaytype title=dom-navigator-canPlayType>canPlayType</a>(in DOMString type);
-};</pre><p>Objects implementing the <code><a href=#navigator>Navigator</a></code> interface must
+<!--  XXX cookieEnabled geolocator javaEnabled mozIsLocallyAvailable preference
+  readonly attribute <span>MimeTypeArray</span> <span title="dom-navigator-mimeTypes">mimeTypes</span>;
+  readonly attribute <span>PluginArray</span> <span title="dom-navigator-plugins">plugins</span>;
+  (the latter is used in a <video> element demo now)
+-->};</pre><p>Objects implementing the <code><a href=#navigator>Navigator</a></code> interface must
   also implement the <a href=#navigatorid>NavigatorID</a>,
   <a href=#navigatoronline>NavigatorOnLine</a>, and
-  <a href=#navigatorbrowsingcontextabilities>NavigatorBrowsingContextAbilities</a> interfaces. (These
+  <a href=#navigatorabilities>NavigatorAbilities</a> interfaces. (These
   interfaces are defined separately so that other specifications can
   re-use parts of the <code><a href=#navigator>Navigator</a></code> interface.)</p><!-- XXX also, see window.external.AddSearchProvider() and similar DOM APIs from IE --><!-- XXX also, could expose languages:
    <dt><dfn title="dom-navigator-browserLanguage"><code>browserLanguage</code></dfn></dt> <!- - Opera and IE only - ->
@@ -27720,12 +27771,7 @@
   sections, will redirect the user to
   "http://kittens.example.org/?show=x-meow%3AS2l0dGVucyBhcmUgdGhlIGN1dGVzdCE%253D".<p>The <code title=dom-navigator-registerContentHandler><a href=#dom-navigator-registercontenthandler>registerContentHandler()</a></code>
   method would work equivalently, but for unknown MIME types instead
-  of unknown protocols.<h4 id=client-abilities><span class=secno>5.6.3 </span>Client abilities</h4><p>The <dfn id=dom-navigator-canplaytype title=dom-navigator-canPlayType><code>canPlayType(<var title="">type</var>)</code></dfn> method must return 1 if <var title="">type</var> is a MIME type that the user agent is confident
-  represents a <a href=#media-resource>media resource</a> that it can render if used
-  in a <code><a href=#audio>audio</a></code> or <code><a href=#video>video</a></code> element, 0 if it
-  cannot determine whether it could do so, and &minus;1 if it is
-  confident that it would not be able to render resources of that
-  type.<h3 id=offline><span class=secno>5.7 </span>Offline Web applications</h3><h4 id=introduction-0><span class=secno>5.7.1 </span>Introduction</h4><p><em>This section is non-normative.</em><p class=XXX>...<h4 id=appcache><span class=secno>5.7.2 </span>Application caches</h4><p>An <dfn id=application-cache>application cache</dfn> is a collection of resources. An
+  of unknown protocols.<h3 id=offline><span class=secno>5.7 </span>Offline Web applications</h3><h4 id=introduction-0><span class=secno>5.7.1 </span>Introduction</h4><p><em>This section is non-normative.</em><p class=XXX>...<h4 id=appcache><span class=secno>5.7.2 </span>Application caches</h4><p>An <dfn id=application-cache>application cache</dfn> is a collection of resources. An
   application cache is identified by the <a href=#absolute-url>absolute URL</a> of
   a resource manifest which is used to populate the cache.<p>Application caches are versioned, and there can be different
   instances of caches for the same manifest URL, each having a

Received on Saturday, 15 November 2008 19:29:04 UTC