- From: poot <cvsmail@w3.org>
- Date: Thu, 27 Oct 2011 16:32:39 -0400
- To: public-html-diffs@w3.org
SSE; hixie: Make sure once you call closed() that EventSource objects
stay down. (whatwg r6772)
http://dev.w3.org/cvsweb/html5/eventsource/Overview.html?r1=1.204&r2=1.205&f=h
http://html5.org/tools/web-apps-tracker?from=6771&to=6772
===================================================================
RCS file: /sources/public/html5/eventsource/Overview.html,v
retrieving revision 1.204
retrieving revision 1.205
diff -u -d -r1.204 -r1.205
--- Overview.html 21 Oct 2011 02:57:20 -0000 1.204
+++ Overview.html 27 Oct 2011 20:31:32 -0000 1.205
@@ -215,7 +215,7 @@
<h1>Server-Sent Events</h1>
- <h2 class="no-num no-toc" id="editor-s-draft-21-october-2011">Editor's Draft 21 October 2011</h2>
+ <h2 class="no-num no-toc" id="editor-s-draft-27-october-2011">Editor's Draft 27 October 2011</h2>
<dl><dt>Latest Published Version:</dt>
<dd><a href="http://www.w3.org/TR/eventsource/">http://www.w3.org/TR/eventsource/</a></dd>
<dt>Latest Editor's Draft:</dt>
@@ -323,7 +323,7 @@
</dl><p>The W3C <a href="http://www.w3.org/2008/webapps/">Web Applications
Working Group</a> is the W3C working group responsible for this
specification's progress along the W3C Recommendation track.
- This specification is the 21 October 2011 Editor's Draft.
+ This specification is the 27 October 2011 Editor's Draft.
</p><p>This document was produced by a group operating under the <a href="http://www.w3.org/Consortium/Patent-Policy-20040205/">5
February 2004 W3C Patent Policy</a>. W3C maintains a <a href="http://www.w3.org/2004/01/pp-impl/42538/status" rel="disclosure">public list of
any patent disclosures</a> made in connection with the deliverables
@@ -563,9 +563,10 @@
<span>networking task source</span> places on the <span>task
queue</span> once the <span title="fetch">fetching algorithm</span>
for such a resource (with the correct <span>MIME type</span>) has
- completed must <a href="#reestablish-the-connection">reestablish the connection</a>. This applies
- whether the connection is closed gracefully or unexpectedly. It
- doesn't apply for the error conditions listed below.<p>HTTP 200 OK responses that have a <span>Content-Type</span>
+ completed must cause the user agent to asynchronously
+ <a href="#reestablish-the-connection">reestablish the connection</a>. This applies whether the
+ connection is closed gracefully or unexpectedly. It doesn't apply
+ for the error conditions listed below.<p>HTTP 200 OK responses that have a <span>Content-Type</span>
specifying an unsupported type (including the
<code><a href="#text-event-stream">text/event-stream</a></code> type with unsupported parameters or
parameters with unsupported values), or that have no
@@ -581,30 +582,61 @@
error that prevents the HTTP connection from being established in
the first place (e.g. DNS errors), must cause the user agent to
<a href="#fail-the-connection">fail the connection</a>.</p><p>For non-HTTP protocols, UAs should act in equivalent ways.<hr><p>When a user agent is to <dfn id="announce-the-connection">announce the connection</dfn>, the
- user agent must <span>queue a task</span> to set the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute to
- <code title="dom-EventSource-OPEN"><a href="#dom-eventsource-open">OPEN</a></code> and <span>fire a
- simple event</span> named <code title="event-open">open</code> at
- the <code><a href="#eventsource">EventSource</a></code> object.<p>When a user agent is to <dfn id="reestablish-the-connection">reestablish the connection</dfn>,
- the user agent must <span>queue a task</span> to set the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute to
- <code title="dom-EventSource-CONNECTING"><a href="#dom-eventsource-connecting">CONNECTING</a></code> and
- <span>fire a simple event</span> named <code title="event-error">error</code> at the <code><a href="#eventsource">EventSource</a></code>
- object, and then, after a delay equal to the reconnection time of
- the event source, if the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute is
- still set to <code title="dom-EventSource-CONNECTING"><a href="#dom-eventsource-connecting">CONNECTING</a></code>, once again do
- a <span>potentially CORS-enabled fetch</span> of the <span>absolute
- URL</span> of the event source resource, with the <i>mode</i> being
- <span title="attr-crossorigin-use-credentials">Use
- Credentials</span>, and the <i title="">origin</i> being the same as the
- <span>origin</span> used in the original request triggered by the
- <code title="dom-EventSource"><a href="#dom-eventsource">EventSource()</a></code> constructor, and process the
- resource obtained in this fashion, if any, as described in this
- section.<p>When a user agent is to <dfn id="fail-the-connection">fail the connection</dfn>, the user
- agent must <span>queue a task</span> to set the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute to
- <code title="dom-EventSource-CLOSED"><a href="#dom-eventsource-closed">CLOSED</a></code> and <span>fire a
- simple event</span> named <code title="event-error">error</code> at
- the <code><a href="#eventsource">EventSource</a></code> object. <strong>Once the user agent has
- <a href="#fail-the-connection" title="fail the connection">failed the connection</a>, it
- does <em>not</em> attempt to reconnect!</strong><hr><p>The <span>task source</span> for any <span title="concept-task">tasks</span> that are <span title="queue a
+ user agent must <span>queue a task</span> which, if the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute is
+ set to a value other than <code title="dom-EventSource-CLOSED"><a href="#dom-eventsource-closed">CLOSED</a></code>, sets the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute to
+ <code title="dom-EventSource-OPEN"><a href="#dom-eventsource-open">OPEN</a></code> and <span title="fire
+ a simple event">fires a simple event</span> named <code title="event-open">open</code> at the <code><a href="#eventsource">EventSource</a></code>
+ object.<p>When a user agent is to <dfn id="reestablish-the-connection">reestablish the connection</dfn>,
+ the user agent must run the following steps. These steps are run
+ asynchronously, not as part of a <span title="concept-task">task</span>. (The tasks that it queues, of
+ course, are run like normal tasks and not asynchronously.)<ol><li>
+
+ <p><span>Queue a task</span> to run the following steps:</p>
+
+ <ol><li><p>If the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute is
+ set to <code title="dom-EventSource-CLOSED"><a href="#dom-eventsource-closed">CLOSED</a></code>, abort
+ the task.</li>
+
+ <li><p>Set the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute to
+ <code title="dom-EventSource-CONNECTING"><a href="#dom-eventsource-connecting">CONNECTING</a></code>.</li>
+
+ <li><p><span>Fire a simple event</span> named <code title="event-error">error</code> at the <code><a href="#eventsource">EventSource</a></code>
+ object.</li>
+
+ </ol></li>
+
+ <li><p>Wait a delay equal to the reconnection time of the event
+ source.</li>
+
+ <li><p>Wait until the aforementioned task has run, if it has not
+ yet run.</li>
+
+ <li>
+
+ <p><span>Queue a task</span> to run the following steps:</p>
+
+ <ol><li><p>If the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute is
+ not set to <code title="dom-EventSource-CONNECTING"><a href="#dom-eventsource-connecting">CONNECTING</a></code>, abort these
+ steps.</li>
+
+ <li><p>Perform a <span>potentially CORS-enabled fetch</span> of
+ the <span>absolute URL</span> of the event source resource, with
+ the <i>mode</i> being <span title="attr-crossorigin-use-credentials">Use Credentials</span>,
+ and the <i title="">origin</i> being the same as the
+ <span>origin</span> used in the original request triggered by the
+ <code title="dom-EventSource"><a href="#dom-eventsource">EventSource()</a></code>
+ constructor, and process the resource obtained in this fashion, if
+ any, as described earlier in this section.</li>
+
+ </ol></li>
+
+ </ol><p>When a user agent is to <dfn id="fail-the-connection">fail the connection</dfn>, the user
+ agent must <span>queue a task</span> which, if the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute is
+ set to a value other than <code title="dom-EventSource-CLOSED"><a href="#dom-eventsource-closed">CLOSED</a></code>, sets the <code title="dom-EventSource-readyState"><a href="#dom-eventsource-readystate">readyState</a></code> attribute to
+ <code title="dom-EventSource-CLOSED"><a href="#dom-eventsource-closed">CLOSED</a></code> and <span title="fire a simple event">fires a simple event</span> named <code title="event-error">error</code> at the <code><a href="#eventsource">EventSource</a></code>
+ object. <strong>Once the user agent has <a href="#fail-the-connection" title="fail the
+ connection">failed the connection</a>, it does <em>not</em>
+ attempt to reconnect!</strong><hr><p>The <span>task source</span> for any <span title="concept-task">tasks</span> that are <span title="queue a
task">queued</span> by <code><a href="#eventsource">EventSource</a></code> objects is the
<dfn id="remote-event-task-source">remote event task source</dfn>.<h2 id="parsing-an-event-stream"><span class="secno">6 </span>Parsing an event stream</h2><p>This event stream format's <span>MIME type</span> is
<code><a href="#text-event-stream">text/event-stream</a></code>.<p>The event stream format is as described by the <code title="">stream</code> production of the following ABNF, the
Received on Thursday, 27 October 2011 20:32:46 UTC