HTML Standard Tracker

Filter

File a bug

SVNBugCommentTime (UTC)
2855[Gecko] [Webkit] Add the autobuffer='' attribute as a hint to browsers.2009-02-23 11:14
@@ -18956,20 +18956,21 @@ href="?audio">audio&lt;/a> test instead.)&lt;/p></pre>
    <dd>If the element has a <code title="attr-media-controls">controls</code> attribute: <span>Interactive content</span>.</dd>
    <dt>Contexts in which this element may be used:</dt>
    <dd>Where <span>embedded content</span> is expected.</dd>
    <dt>Content model:</dt>
    <dd>If the element has a <code title="attr-media-src">src</code> attribute: <span>transparent</span>.</dd>
    <dd>If the element does not have a <code title="attr-media-src">src</code> attribute: one or more <code>source</code> elements, then, <span>transparent</span>.</dd>
    <dt>Content attributes:</dt>
    <dd><span>Global attributes</span></dd>
    <dd><code title="attr-media-src">src</code></dd>
    <dd><code title="attr-video-poster">poster</code></dd>
+   <dd><code title="attr-media-autobuffer">autobuffer</code></dd>
    <dd><code title="attr-media-autoplay">autoplay</code></dd>
    <dd><code title="attr-media-loop">loop</code></dd>
    <dd><code title="attr-media-controls">controls</code></dd>
    <dd><code title="attr-dim-width">width</code></dd>
    <dd><code title="attr-dim-height">height</code></dd>
    <dt>DOM interface:</dt>
    <dd>
     <pre class="idl">interface <dfn>HTMLVideoElement</dfn> : <span>HTMLMediaElement</span> {
            attribute DOMString <span title="dom-dim-width">width</span>;
            attribute DOMString <span title="dom-dim-height">height</span>;
@@ -18994,20 +18995,21 @@ href="?audio">audio&lt;/a> test instead.)&lt;/p></pre>
   video content accessible to the blind, deaf, and those with other
   physical or cognitive disabilities, authors are expected to provide
   alternative media streams and/or to embed accessibility aids (such
   as caption or subtitle tracks) into their media streams.</p>
 
   <p>The <code>video</code> element is a <span>media element</span>
   whose <span>media data</span> is ostensibly video data, possibly
   with associated audio data.</p>
 
   <p>The <code title="attr-media-src">src</code>, <code
+  title="attr-media-autobuffer">autobuffer</code>, <code
   title="attr-media-autoplay">autoplay</code>, <code
   title="attr-media-loop">loop</code>, and <code
   title="attr-media-controls">controls</code> attributes are <span
   title="media element attributes">the attributes common to all media
   elements</span>.</p>
 
   <p>The <dfn title="attr-video-poster"><code>poster</code></dfn>
   attribute gives the address of an image file that the user agent can
   show while no video data is available. The attribute, if present,
   must contain a <span>valid URL</span>. If the specified resource is
@@ -19224,20 +19226,21 @@ href="?audio">audio&lt;/a> test instead.)&lt;/p></pre>
    <dd><span>Embedded content</span>.</dd>
    <dd>If the element has a <code title="attr-media-controls">controls</code> attribute: <span>Interactive content</span>.</dd>
    <dt>Contexts in which this element may be used:</dt>
    <dd>Where <span>embedded content</span> is expected.</dd>
    <dt>Content model:</dt>
    <dd>If the element has a <code title="attr-media-src">src</code> attribute: <span>transparent</span>.</dd>
    <dd>If the element does not have a <code title="attr-media-src">src</code> attribute: one or more <code>source</code> elements, then, <span>transparent</span>.</dd>
    <dt>Content attributes:</dt>
    <dd><span>Global attributes</span></dd>
    <dd><code title="attr-media-src">src</code></dd>
+   <dd><code title="attr-media-autobuffer">autobuffer</code></dd>
    <dd><code title="attr-media-autoplay">autoplay</code></dd>
    <dd><code title="attr-media-loop">loop</code></dd>
    <dd><code title="attr-media-controls">controls</code></dd>
    <dt>DOM interface:</dt>
    <dd>
     <pre class="idl">[NamedConstructor=<span title="dom-Audio">Audio</span>(),
  NamedConstructor=<span title="dom-Audio-s">Audio</span>(in DOMString src)]
 interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {
   // no members
 };</pre>
@@ -19258,20 +19261,21 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {
   content</i> intended to address accessibility concerns. To make
   audio content accessible to the deaf or to those with other physical
   or cognitive disabilities, authors are expected to provide
   alternative media streams and/or to embed accessibility aids (such
   as transcriptions) into their media streams.</p>
 
   <p>The <code>audio</code> element is a <span>media element</span>
   whose <span>media data</span> is ostensibly audio data.</p>
 
   <p>The <code title="attr-media-src">src</code>, <code
+  title="attr-media-autobuffer">autobuffer</code>, <code
   title="attr-media-autoplay">autoplay</code>, <code
   title="attr-media-loop">loop</code>, and <code
   title="attr-media-controls">controls</code> attributes are <span
   title="media element attributes">the attributes common to all media
   elements</span>.</p>
  
   <p>When an <code>audio</code> element is <span>potentially
   playing</span>, it must have its audio data played synchronized with
   the <span>current playback position</span>, at the specified <span
   title="dom-media-volume">volume</span> with the specified <span
@@ -19476,20 +19480,21 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {
 
   // network state
            attribute DOMString <span title="dom-media-src">src</span>;
   readonly attribute DOMString <span title="dom-media-currentSrc">currentSrc</span>;
   const unsigned short <span title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</span> = 0;
   const unsigned short <span title="dom-media-NETWORK_IDLE">NETWORK_IDLE</span> = 1;
   const unsigned short <span title="dom-media-NETWORK_LOADING">NETWORK_LOADING</span> = 2;
   const unsigned short <span title="dom-media-NETWORK_LOADED">NETWORK_LOADED</span> = 3;
   const unsigned short <span title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</span> = 4;
   readonly attribute unsigned short <span title="dom-media-networkState">networkState</span>;
+           attribute boolean <span title="dom-media-autobuffer">autobuffer</span>;
   readonly attribute float <span title="dom-media-bufferingRate">bufferingRate</span>;
   readonly attribute boolean <span title="dom-media-bufferingThrottled">bufferingThrottled</span>;
   readonly attribute <span>TimeRanges</span> <span title="dom-media-buffered">buffered</span>;
   void <span title="dom-media-load">load</span>();
   DOMString <span title="dom-navigator-canPlayType">canPlayType</span>(in DOMString type);
 
   // ready state
   const unsigned short <span title="dom-media-HAVE_NOTHING">HAVE_NOTHING</span> = 0;
   const unsigned short <span title="dom-media-HAVE_METADATA">HAVE_METADATA</span> = 1;
   const unsigned short <span title="dom-media-HAVE_CURRENT_DATA">HAVE_CURRENT_DATA</span> = 2;
@@ -19522,20 +19527,21 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {
            attribute boolean <span title="dom-media-muted">muted</span>;
 };
 
 [Callback=FunctionOnly, NoInterfaceObject]
 interface <dfn>CueRangeCallback</dfn> {
   void <span title="dom-CueRangeCallback-handleEvent">handleEvent</span>(in DOMString id);
 };</pre>
 
   <p>The <dfn>media element attributes</dfn>, <code
   title="attr-media-src">src</code>, <code
+  title="attr-media-autobuffer">autobuffer</code>, <code
   title="attr-media-autoplay">autoplay</code>, <code
   title="attr-media-loop">loop</code>, and <code
   title="attr-media-controls">controls</code>, apply to all <span
   title="media element">media elements</span>. They are defined in
   this section.</p>
 
   <!-- proposed v2 (actually v3!) features:
     * frame forward / backwards / step(n) while paused
     * hasAudio, hasVideo, hasCaptions, etc
     * per-frame control: get current frame; set current frame
@@ -20197,20 +20203,29 @@ interface <dfn>CueRangeCallback</dfn> {
     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>
     called <code title="event-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>
+
     <p>The user agent may use whatever means necessary to fetch the
     resource (within the constraints put forward by this and other
     specifications); for example, reconnecting to the server in the
     face of network errors, using HTTP partial range requests, or
     switching to a streaming protocol. The user agent must consider a
     resource erroneous only if it has given up trying to fetch it.</p>
 
     <p>The <span>networking task source</span> <span
     title="concept-task">tasks</span> to process the data as it is
     being fetched must, when appropriate, include the relevant
@@ -20303,20 +20318,31 @@ interface <dfn>CueRangeCallback</dfn> {
 
         <p class="example">For example, a fragment identifier could be
         used to indicate a start position.</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 class="note">This is the point at which a user agent
+       that is attempting to reduce network usage while still fetching
+       the metadata for each <span>media resource</span> would stop
+       buffering, causing the <code
+       title="dom-media-networkState">networkState</code> attribute to
+       switch to the <code
+       title="dom-media-NETWORK_IDLE">NETWORK_IDLE</code> value, if
+       the <span>media element</span> did not have an <code
+       title="attr-media-autobuffer">autobuffer</code> or <code
+       title="attr-media-autoplay">autoplay</code> attribute.</p></li>
+
       </ol>
 
       <p class="note">The user agent is <em>required</em> to
       determine the duration of the <span>media resource</span> and
       go through this step before playing.</p> <!-- actually defined
       in the 'duration' section -->
 
      </dd>
 
 
@@ -20507,20 +20533,38 @@ interface <dfn>CueRangeCallback</dfn> {
 
   <p>If a <span>media element</span> whose <code
   title="dom-media-networkState">networkState</code> has the value
   <code title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code> is <span
   title="insert an element into a document">inserted into a
   document</span>, the user agent must asynchronously invoke the
   <span>media element</span>'s <span
   title="concept-media-load-algorithm">load algorithm</span>.</p>
 
   <p>The <dfn
+  title="attr-media-autobuffer"><code>autobuffer</code></dfn>
+  attribute is a <span>boolean attribute</span>. Its presence hints to
+  the user agent that the author believes that the <span>media
+  element</span> will likely be used, even though the element does not
+  have an <code title="attr-media-autoplay">autoplay</code>
+  attribute. (The attribute has no effect if used in conjunction with
+  the <code title="attr-media-autoplay">autoplay</code> attribute,
+  though including both is not an error.) This attribute may be
+  ignored altogether. The attribute must be ignored if the <code
+  title="attr-media-autoplay">autoplay</code> attribute is
+  present.</p>
+
+  <p>The <dfn
+  title="dom-media-autobuffer"><code>autobuffer</code></dfn> DOM
+  attribute must <span>reflect</span> the content attribute of the
+  same name.</p>
+
+  <p>The <dfn
   title="dom-media-bufferingRate"><code>bufferingRate</code></dfn>
   attribute must return the average number of bits received per second
   for the current download over the past few seconds. If there is no
   download in progress, the attribute must return 0.</p>
 
   <p>The <dfn
   title="dom-media-bufferingThrottled"><code>bufferingThrottled</code></dfn>
   attribute must return true if the user agent is intentionally
   throttling the bandwidth used by the download (including when
   throttling to zero to pause the download altogether), and false

|