HTML Standard Tracker

Filter

File a bug

SVNBugCommentTime (UTC)
2873[Gecko] [Webkit] video: Use better terminology; make all invokations of the resource selection algorithm async; fix the problem whereby you could get that algorithm running twice on one element; add a missing loop step. (credit: cp)2009-02-26 09:15
@@ -19135,23 +19135,23 @@ interface <dfn>HTMLAudioElement</dfn> : <span>HTMLMediaElement</span> {
   <code>HTMLAudioElement</code> objects (in addition to the factory
   methods from DOM Core such as <code
   title="">createElement()</code>): <dfn
   title="dom-Audio"><code>Audio()</code></dfn> and <dfn
   title="dom-Audio-s"><code>Audio(<var
   title="">src</var>)</code></dfn>. When invoked as constructors,
   these must return a new <code>HTMLAudioElement</code> object (a new
   <code>audio</code> element). If the <var title="">src</var> argument
   is present, the object created must have its <code
   title="dom-media-src">src</code> content attribute set to the
-  provided value, and the user agent must invoke the object's <span
-  title="concept-media-load-algorithm">load algorithm</span> before
-  returning.</p>
+  provided value, and the user agent must asynchronously invoke the
+  object's <span title="concept-media-load-algorithm">resource
+  selection algorithm</span> before returning.</p>
 
 
 
 
   <h5>Audio codecs for <code>audio</code> elements</h5>
 
   <p>User agents may support any audio codecs and container
   formats.</p>
 
   <p>User agents must support the WAVE container format with audio
@@ -19440,25 +19440,25 @@ interface <dfn>CueRangeCallback</dfn> {
   the tasks <span title="queue a task">queued</span> in this section
   and its subsections is the <dfn>media element event task
   source</dfn>.</p>
 
 
   <h5>Error codes</h5>
 
   <p>All <span title="media element">media elements</span> have an
   associated error status, which records the last error the element
   encountered since its <span
-  title="concept-media-load-algorithm">load algorithm</span> was last
-  invoked. The <dfn title="dom-media-error"><code>error</code></dfn>
-  attribute, on getting, must return the <code>MediaError</code>
-  object created for this last error, or null if there has not been an
-  error.</p>
+  title="concept-media-load-algorithm">resource selection
+  algorithm</span> was last invoked. The <dfn
+  title="dom-media-error"><code>error</code></dfn> attribute, on
+  getting, must return the <code>MediaError</code> object created for
+  this last error, or null if there has not been an error.</p>
 
   <pre class="idl">interface <dfn>MediaError</dfn> {
   const unsigned short <span title="dom-MediaError-MEDIA_ERR_ABORTED">MEDIA_ERR_ABORTED</span> = 1;
   const unsigned short <span title="dom-MediaError-MEDIA_ERR_NETWORK">MEDIA_ERR_NETWORK</span> = 2;
   const unsigned short <span title="dom-MediaError-MEDIA_ERR_DECODE">MEDIA_ERR_DECODE</span> = 3;
   const unsigned short <span title="dom-MediaError-MEDIA_ERR_NONE_SUPPORTED">MEDIA_ERR_NONE_SUPPORTED</span> = 4;
   readonly attribute unsigned short <span title="dom-MediaError-code">code</span>;
 };</pre>
 
   <p>The <dfn title="dom-MediaError-code"><code>code</code></dfn>
@@ -19500,22 +19500,22 @@ interface <dfn>CueRangeCallback</dfn> {
   attribute, if present, must contain a <span>valid URL</span>.</p>
 
   <p>The <dfn title="dom-media-src"><code>src</code></dfn> DOM
   attribute on <span title="media element">media elements</span> must
   <span>reflect</span> the respective content attribute of the same
   name.</p>
 
   <p>The <dfn
   title="dom-media-currentSrc"><code>currentSrc</code></dfn> DOM
   attribute is initially the empty string. Its value is changed by the
-  <span title="concept-media-load-algorithm">load algorithm</span>
-  defined below.</p>
+  <span title="concept-media-load-algorithm">resource selection
+  algorithm</span> defined below.</p>
 
   <p class="note">There are two ways to specify a <span>media
   resource</span>, the <code title="attr-media-src">src</code>
   attribute, or <code>source</code> elements. The attribute overrides
   the elements.</p>
 
 
 
   <h5>Media types</h5>
 
@@ -19604,43 +19604,45 @@ interface <dfn>CueRangeCallback</dfn> {
 
   <dl>
 
    <dt><dfn title="dom-media-NETWORK_EMPTY"><code>NETWORK_EMPTY</code></dfn> (numeric value 0)</dt>
 
    <dd>The element has not yet been initialized. All attributes are in
    their initial states.</dd>
 
    <dt><dfn title="dom-media-NETWORK_IDLE"><code>NETWORK_IDLE</code></dfn> (numeric value 1)</dt>
 
-   <dd>The element's <span title="concept-media-load-algorithm">load
+   <dd>The element's <span
+   title="concept-media-load-algorithm">resource selection
    algorithm</span> is active and has selected a resource, but it is
    not actually using the network at this time.</dd>
 
    <dt><dfn title="dom-media-NETWORK_LOADING"><code>NETWORK_LOADING</code></dfn> (numeric value 2)</dt>
 
    <dd>The user agent is actively trying to download data.</dd>
 
    <dt><dfn title="dom-media-NETWORK_LOADED"><code>NETWORK_LOADED</code></dfn> (numeric value 3)</dt>
 
    <dd>The entire <span>media resource</span> has been obtained and is
    available to the user agent locally. Network connectivity could be
    lost without affecting the media playback.</dd>
 
    <dt><dfn title="dom-media-NETWORK_NO_SOURCE"><code>NETWORK_NO_SOURCE</code></dfn> (numeric value 4)</dt>
 
-   <dd>The element's <span title="concept-media-load-algorithm">load
+   <dd>The element's <span
+   title="concept-media-load-algorithm">resource selection
    algorithm</span> is active, but it has failed to find a resource to
    use.</dd>
 
   </dl>
 
-  <p>The <span title="concept-media-load-algorithm">load
+  <p>The <span title="concept-media-load-algorithm">resource selection
   algorithm</span> defined below describes exactly when the <code
   title="dom-media-networkState">networkState</code> attribute changes
   value and what events fire to indicate changes in this state.</p>
 
   <p class="note">Some resources, e.g. streaming Web radio, can never
   reach the <code
   title="dom-media-NETWORK_LOADED">NETWORK_LOADED</code> state.</p>
 
 
   <h5>Loading the media resource</h5>
@@ -19657,22 +19659,22 @@ interface <dfn>CueRangeCallback</dfn> {
   aborted, e.g. if the <code title="dom-media-load">load()</code>
   method itself is invoked again.</p>
 
   <ol>
 
    <li><p>If the <code title="dom-media-load">load()</code> method for
    this element is already being invoked, then abort these
    steps.</p></li>
 
    <li><p>Abort any already-running instance of the <span
-   title="concept-media-load-algorithm">load algorithm</span> for this
-   element.</p></li>
+   title="concept-media-load-algorithm">resource selection
+   algorithm</span> for this element.</p></li>
 
    <li>
 
     <p>If there are any <span title="concept-task">tasks</span> from
     the <span>media element</span>'s <span>media element event task
     source</span> in one of the <span title="task queue">task
     queues</span>, then remove those tasks.</p>
 
     <p class="note">Basically, pending events and callbacks for the
     media element are discarded when the media element starts loading
@@ -19745,43 +19747,60 @@ interface <dfn>CueRangeCallback</dfn> {
 
      <li><span>Fire a simple event</span> called <code
      title="event-emptied">emptied</code> at the <span>media
      element</span>.</li>
 
     </ol>
 
    </li>
 
    <li><p>Asynchronously invoke the <span>media element</span>'s <span
-   title="concept-media-load-algorithm">load algorithm</span>.</li>
+   title="concept-media-load-algorithm">resource selection
+   algorithm</span>.</li>
 
    <li>
 
     <p class="note">Playback of any previously playing <span>media
     resource</span> for this element stops.</p>
 
    </li>
 
   </ol>
 
-  <p>The <dfn title="concept-media-load-algorithm">load
+  <p>The <dfn title="concept-media-load-algorithm">resource selection
   algorithm</dfn> for a <span>media element</span> is as follows. This
   algorithm is always invoked asynchronously, meaning that it runs in
   the background with scripts and other <span
   title="concept-task">tasks</span> running in parallel.</p>
 
   <ol>
 
-   <li><p>While the <span>media element</span> has neither a <code
-   title="attr-media-src">src</code> attribute nor any
-   <code>source</code> element children, wait. (This steps might wait
-   forever.)</p></li>
+   <li>
+
+    <p>If the <span>media element</span> has neither a <code
+    title="attr-media-src">src</code> attribute nor any
+    <code>source</code> element children, run these substeps:</p>
+
+    <ol>
+
+     <li><p>Set the <code
+     title="dom-media-networkState">networkState</code> to <code
+     title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</code>.</p></li>
+
+     <li><p>While the <span>media element</span> has neither a <code
+     title="attr-media-src">src</code> attribute nor any
+     <code>source</code> element children, wait. (This steps might
+     wait forever.)</p></li>
+
+    </ol>
+
+   </li>
 
    <li><p>Set the element's <span>delaying-the-load-event flag</span>
    to true. This <span title="delay the load event">delays the load
    event</span>.</p></li>
 
    <li><p>Set the <code
    title="dom-media-networkState">networkState</code> to <code
    title="dom-media-NETWORK_LOADING">NETWORK_LOADING</code>.</p></li>
 
    <li><p><span>Queue a task</span> to <span>fire a progress
@@ -19794,21 +19813,21 @@ interface <dfn>CueRangeCallback</dfn> {
     title="attr-media-src">src</code> attribute, then run these
     substeps:</p>
 
     <ol>
 
      <li><p><span title="resolve a url">Resolve</span> the
      <span>URL</span> given in that attribute, relative to the
      <span>media element</span>.</p>
 
      <li><p>If that is successful, then run the <span
-     title="concept-media-load-resource">resource-load
+     title="concept-media-load-resource">resource fetch
      algorithm</span> with the resulting <span>absolute URL</span>. If
      that algorithm returns without aborting <em>this</em> one, then
      the load failed.</p></li>
 
      <li><p>Reaching this step indicates that either the URL failed to
      resolve, or the media resource failed to load. 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_NONE_SUPPORTED">MEDIA_ERR_NONE_SUPPORTED</code>.</p></li>
@@ -19951,21 +19970,21 @@ interface <dfn>CueRangeCallback</dfn> {
      </li>
 
      <li><p>Set the <code
      title="dom-media-networkState">networkState</code> to <code
      title="dom-media-NETWORK_LOADING">NETWORK_LOADING</code> again,
      in case it was set to <code
      title="dom-media-NETWORK_NO_SOURCE">NETWORK_NO_SOURCE</code>
      above.</p></li>
 
      <li><p>Run the <span
-     title="concept-media-load-resource">resource-load
+     title="concept-media-load-resource">resource fetch
      algorithm</span> with the <span>absolute URL</span> that resulted
      from <span title="resolve a url">resolving</span> the
      <span>URL</span> given by the <var title="">candidate</var>
      element's <code title="attr-source-src">src</code> attribute
      relative to <var title="">candidate</var>. If that algorithm
      returns without aborting <em>this</em> one, then the load
      failed.</p></li>
 
      <li><p>Return to the step labeled <i>search loop</i>.</p></li>
 
@@ -19991,27 +20010,29 @@ interface <dfn>CueRangeCallback</dfn> {
 
      <li><p>Wait until the node after <var title="">pointer</var> is a
      node other than the end of the list. (This step might wait
      forever.)</p></li>
 
      <li><p>Set the element's <span>delaying-the-load-event
      flag</span> back to true. This <span title="delay the load
      event">delays the load event</span> again, in case it hasn't gone
      been fired yet.</p></li>
 
+     <li><p>Jump back to the step labeled <i>search loop</i>.</p></li>
+
     </ol>
 
    </li>
 
   </ol>
 
-  <p>The <dfn title="concept-media-load-resource">resource-load
+  <p>The <dfn title="concept-media-load-resource">resource fetch
   algorithm</dfn> for a <span>media element</span> and a given
   <span>absolute URL</span> is as follows:</p>
 
   <ol>
 
    <li><p>Let the <var title="">current media resource</var> be the
    resource given by the <span>absolute URL</span> passed to this
    algorithm. This is now the element's <span>media
    resource</span>.</p></li>
 
@@ -20098,21 +20119,22 @@ interface <dfn>CueRangeCallback</dfn> {
       the file using an unsupported container format, or using
       unsupported codecs for all the data, must cause the user agent
       to execute the following steps:</p>
 
       <ol>
 
        <li><p>The user agent should cancel the fetching
        process.</p></li>
 
        <li><p>Abort this subalgorithm, returning to the <span
-       title="concept-media-load-algorithm">load algorithm</span>.</p>
+       title="concept-media-load-algorithm">resource selection
+       algorithm</span>.</p>
 
       </ol>
 
      </dd>
 
 
      <dt id="getting-media-metadata">Once enough of the <span>media
      data</span> has been fetched to determine the duration of the
      <span>media resource</span>, its dimensions, and other
      metadata</dt>
@@ -20224,21 +20246,21 @@ interface <dfn>CueRangeCallback</dfn> {
        the <span title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</span>
        value and <span>queue a task</span> to <span>fire a simple
        event</span> called <code title="event-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
        event">delaying the load event</span>.</p></li>
 
        <li><p>Abort the overall <span
-       title="concept-media-load-algorithm">load
+       title="concept-media-load-algorithm">resource selection
        algorithm</span>.</p></li>
 
       </ol>
 
      </dd>
 
      <dt id="fatal-decode-error">If the <span>media data</span> is
      corrupted</dt>
 
      <dd>
@@ -20268,21 +20290,21 @@ interface <dfn>CueRangeCallback</dfn> {
        the <span title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</span>
        value and <span>queue a task</span> to <span>fire a simple
        event</span> called <code title="event-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
        event">delaying the load event</span>.</p></li>
 
        <li><p>Abort the overall <span
-       title="concept-media-load-algorithm">load
+       title="concept-media-load-algorithm">resource selection
        algorithm</span>.</p></li>
 
       </ol>
 
      </dd>
 
      <dt>If the <span>media data</span> fetching process is aborted by
      the user</dt>
 
      <dd>
@@ -20321,21 +20343,21 @@ interface <dfn>CueRangeCallback</dfn> {
        at the element. Otherwise, set set the element's <code
        title="dom-media-networkState">networkState</code> attribute to
        the <span title="dom-media-NETWORK_IDLE">NETWORK_IDLE</span>
        value.</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 the overall <span
-       title="concept-media-load-algorithm">load
+       title="concept-media-load-algorithm">resource selection
        algorithm</span>.</p></li>
 
       </ol>
 
      </dd>
 
      <dt id="non-fatal-media-error">If the <span>media data</span> can
      be fetched but has non-fatal errors or uses, in part, codecs that
      are unsupported, preventing the user agent from rendering the
      content completely correctly but not preventing playback
@@ -20367,32 +20389,33 @@ interface <dfn>CueRangeCallback</dfn> {
 
    <li><p>If the fetching process completes without errors, then set
    the <code title="dom-media-networkState">networkState</code>
    attribute to <code
    title="dom-media-NETWORK_LOADED">NETWORK_LOADED</code>, and
    <span>queue a task</span> to <span>fire a progress event</span>
    called <code title="event-load">load</code> at the
    element.</p></li>
 
    <li><p>Then, abort the overall <span
-   title="concept-media-load-algorithm">load
+   title="concept-media-load-algorithm">resource selection
    algorithm</span>.</p></li>
 
   </ol>
 
   <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>
+  title="concept-media-load-algorithm">resource selection
+  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
@@ -20939,22 +20962,22 @@ interface <dfn>CueRangeCallback</dfn> {
   <p>When the <dfn title="dom-media-play"><code>play()</code></dfn>
   method on a <span>media element</span> is invoked, the user agent
   must run the following steps.</p>
 
   <ol>
 
    <li><p>If the <span>media element</span>'s <code
    title="dom-media-networkState">networkState</code> attribute has
    the value <code
    title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code>, then the user
-   agent must invoke the <span>media element</span>'s <span
-   title="concept-media-load-algorithm">load
+   agent must asynchronously invoke the <span>media element</span>'s
+   <span title="concept-media-load-algorithm">resource selection
    algorithm</span>.</p></li>
 
    <li>
 
     <p>If the <span title="ended playback">playback has ended</span>,
     then the user agent must <span title="dom-media-seek">seek</span>
     to the <var>earliest possible position</var> of the <span>media
     resource</span>.</p>
 
     <p class="note">This <a href="#seekUpdate">will cause</a> the user
@@ -21015,22 +21038,22 @@ interface <dfn>CueRangeCallback</dfn> {
 
   <p>When the <dfn title="dom-media-pause"><code>pause()</code></dfn>
   method is invoked, the user agent must run the following steps:</p>
 
   <ol>
 
    <li><p>If the <span>media element</span>'s <code
    title="dom-media-networkState">networkState</code> attribute has
    the value <code
    title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code>, then the user
-   agent must invoke the <span>media element</span>'s <span
-   title="concept-media-load-algorithm">load
+   agent must asynchronously invoke the <span>media element</span>'s
+   <span title="concept-media-load-algorithm">resource selection
    algorithm</span>.</p></li>
 
    <li><p>If the <span>media element</span>'s <code
    title="dom-media-paused">paused</code> attribute is false, it must
    be set to true.</p></li>
 
    <li><p>The <span>media element</span>'s <span>autoplaying
    flag</span> must be set to false.</p></li>
 
    <li><p>If the second step above changed the value of <code
@@ -21442,21 +21465,21 @@ interface <dfn>CueRangeCallback</dfn> {
     <tr>
      <th>Event name
      <th>Interface
      <th>Dispatched when...
      <th>Preconditions
 
    <tbody>
     <tr>
      <td><dfn title="event-loadstart"><code>loadstart</code></dfn>
      <td><code>ProgressEvent</code> <a href="#refsPROGRESS">[PROGRESS]</a>
-     <td>The user agent begins looking for <span>media data</span>, as part of the <span title="concept-media-load-algorithm">load algorithm</span>.
+     <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-progress"><code>progress</code></dfn>
      <td><code>ProgressEvent</code> <a href="#refsPROGRESS">[PROGRESS]</a>
      <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-suspend"><code>suspend</code></dfn>
      <td><code>ProgressEvent</code> <a href="#refsPROGRESS">[PROGRESS]</a>
      <td>The user agent is intentionally not currently fetching <span>media data</span>, but does not have the entire <span>media resource</span> downloaded.
@@ -21474,21 +21497,21 @@ interface <dfn>CueRangeCallback</dfn> {
          <code title="dom-media-networkState">networkState</code> equals either <code title="dom-media-NETWORK_EMPTY">NETWORK_EMPTY</code> or <code title="dom-media-NETWORK_LOADED">NETWORK_LOADED</code>, depending on when the download was aborted.
     <tr>
      <td><dfn title="event-error"><code>error</code></dfn>
      <td><code>ProgressEvent</code> <a href="#refsPROGRESS">[PROGRESS]</a>
      <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_LOADED">NETWORK_LOADED</code>, depending on when the download was aborted.
     <tr>
      <td><dfn title="event-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">load algorithm</span> was already running, in which case it is fired synchronously during the <code title="dom-media-load">load()</code> method call).
+     <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 DOM attributes are in their initial states.
     <tr>
      <td><dfn title="event-stalled"><code>stalled</code></dfn>
      <td><code>ProgressEvent</code>
      <td>The user agent is trying to fetch <span>media data</span>, but data is unexpectedly not forthcoming.
      <td><code title="dom-media-networkState">networkState</code> is <code title="dom-media-NETWORK_LOADING">NETWORK_LOADING</code>.
 
    <tbody>
     <tr>
      <td><dfn title="event-play"><code>play</code></dfn>
@@ -65447,37 +65470,37 @@ interface <dfn>TimeoutHandler</dfn> {
   (Alexey Proskuryakov), Anders Carlsson, Andrew Gove, Andrew Sidwell,
   Anne van Kesteren, Anthony Hickson, Anthony Ricaud, Antti Koivisto,
   Arphen Lin, Asbj&oslash;rn Ulsberg, Ashley Sheridan, Aurelien Levy,
   Ben Boyle, Ben Godfrey, Ben Meadowcroft, Ben Millard, Benjamin
   Hawkes-Lewis, Bert Bos, Bijan Parsia, Bill Mason, Billy Wong, Bjoern
   Hoehrmann, Boris Zbarsky, Brad Fults, Brad Neuberg, Brady Eidson,
   Brendan Eich, Brett Wilson, Brian Campbell, Brian Smith, Bruce
   Lawson, Bruce Miller, Cameron McCormack, Cao Yipeng, Carlos
   Perell&oacute; Mar&iacute;n, Chao Cai, &#xc724;&#xc11d;&#xcc2c;
   (Channy Yun), Charl van Niekerk, Charles Iliya Krempeaux, Charles
-  McCathieNevile, Christian Biesinger, Christian Johansen, Christian
-  Schmidt, Chriswa, Cole Robison, Colin Fine, Collin Jackson, Daniel
-  Barclay, Daniel Brumbaugh Keeney, Daniel Glazman, Daniel Peng,
-  Daniel Sp&aring;ng, Daniel Steinberg, Danny Sullivan, Darin Adler,
-  Darin Fisher, Dave Camp, Dave Singer, Dave Townsend<!-- Mossop on
-  moz irc -->, David Baron, David Bloom, David Carlisle, David
-  Flanagan, David H&aring;s&auml;ther, David Hyatt, David Smith, David
-  Woolley, Dean Edridge, Debi Orton, Derek Featherstone, DeWitt
-  Clinton, Dimitri Glazkov, dolphinling, Doron Rosenberg, Doug Kramer,
-  Edward O'Connor, Edward Z. Yang, Eira Monstad, Elliotte Harold, Eric
-  Carlson, Eric Law, Erik Arvidsson, Evan Martin, Evan Prodromou,
-  fantasai, Felix Sasaki, Franck 'Shift' Qu&eacute;lain, Garrett
-  Smith, Geoffrey Garen, Geoffrey Sneddon, George Lund, H&aring;kon
-  Wium Lie, Hans S. T&oslash;mmerhalt, Henri Sivonen, Henrik Lied,
-  Henry Mason, Hugh Winkler, Ignacio Javier, Ivo Emanuel
-  Gon&ccedil;alves, J. King, Jacques Distler, James Craig, James
-  Graham, James Justin Harrell, James M Snell, James Perrett,
+  McCathieNevile, Chris Pearce, Christian Biesinger, Christian
+  Johansen, Christian Schmidt, Chriswa, Cole Robison, Colin Fine,
+  Collin Jackson, Daniel Barclay, Daniel Brumbaugh Keeney, Daniel
+  Glazman, Daniel Peng, Daniel Sp&aring;ng, Daniel Steinberg, Danny
+  Sullivan, Darin Adler, Darin Fisher, Dave Camp, Dave Singer, Dave
+  Townsend<!-- Mossop on moz irc -->, David Baron, David Bloom, David
+  Carlisle, David Flanagan, David H&aring;s&auml;ther, David Hyatt,
+  David Smith, David Woolley, Dean Edridge, Debi Orton, Derek
+  Featherstone, DeWitt Clinton, Dimitri Glazkov, dolphinling, Doron
+  Rosenberg, Doug Kramer, Edward O'Connor, Edward Z. Yang, Eira
+  Monstad, Elliotte Harold, Eric Carlson, Eric Law, Erik Arvidsson,
+  Evan Martin, Evan Prodromou, fantasai, Felix Sasaki, Franck 'Shift'
+  Qu&eacute;lain, Garrett Smith, Geoffrey Garen, Geoffrey Sneddon,
+  George Lund, H&aring;kon Wium Lie, Hans S. T&oslash;mmerhalt, Henri
+  Sivonen, Henrik Lied, Henry Mason, Hugh Winkler, Ignacio Javier, Ivo
+  Emanuel Gon&ccedil;alves, J. King, Jacques Distler, James Craig,
+  James Graham, James Justin Harrell, James M Snell, James Perrett,
   Jan-Klaas Kollhof, Jason White, Jasper Bryant-Greene, Jed Hartman,
   Jeff Cutsinger, Jeff Schiller, Jeff Walden, Jens Bannmann, Jens
   Fendler, Jeroen van der Meer, Jim Jewett, Jim Meehan, Joe Clark,
   John Fallows, Joseph Kesselman, Jjgod Jiang, Joel Spolsky, Johan
   Herland, John Boyer, John Bussjaeger, John Harding, Johnny Stenback,
   Jon Gibbins, Jon Perlow, Jonathan Worent, Jorgen Horstink, Josh
   Levenberg, Joshua Randall, Jukka K. Korpela, Jules
   Cl&eacute;ment-Ripoche, Julian Reschke, Kai Hendry, Kartikaya Gupta,
   <!-- Keryx Web, = Lars Gunther --> Kornel Lesinski,
   &#x9ed2;&#x6fa4;&#x525b;&#x5fd7; (KUROSAWA Takeshi), Kristof

|