- From: poot <cvsmail@w3.org>
- Date: Tue, 04 Oct 2011 21:58:32 -0400
- To: public-html-diffs@w3.org
websocket; hixie: Revert the part of r5409 that removed the URL parsing
algorithms, since it's no longer defined in the protocol spec. (whatwg
r6632)
http://dev.w3.org/cvsweb/html5/websockets/Overview.html?r1=1.246&r2=1.247&f=h
http://html5.org/tools/web-apps-tracker?from=6631&to=6632
===================================================================
RCS file: /sources/public/html5/websockets/Overview.html,v
retrieving revision 1.246
retrieving revision 1.247
diff -u -d -r1.246 -r1.247
--- Overview.html 4 Oct 2011 17:01:19 -0000 1.246
+++ Overview.html 5 Oct 2011 01:58:21 -0000 1.247
@@ -215,7 +215,7 @@
<h1>The WebSocket API</h1>
- <h2 class="no-num no-toc" id="editor-s-draft-4-october-2011">Editor's Draft 4 October 2011</h2>
+ <h2 class="no-num no-toc" id="editor-s-draft-5-october-2011">Editor's Draft 5 October 2011</h2>
<dl><dt>Latest Published Version:</dt>
<dd><a href="http://www.w3.org/TR/websockets/">http://www.w3.org/TR/websockets/</a></dd>
<dt>Latest Editor's Draft:</dt>
@@ -319,7 +319,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 4 October 2011 Editor's Draft.
+ This specification is the 5 October 2011 Editor's Draft.
<p>This specification is being developed in conjunction with an
Internet Draft for a wire protocol, the WebSocket Protocol,
available from the following location:<ul><li>WebSocket Protocol Internet-Draft: <a href="http://www.whatwg.org/specs/web-socket-protocol/">http://www.whatwg.org/specs/web-socket-protocol/</a></li>
@@ -347,8 +347,9 @@
<li><a href="#the-websocket-interface"><span class="secno">4 </span>The <code>WebSocket</code> interface</a></li>
<li><a href="#feedback-from-the-protocol"><span class="secno">5 </span>Feedback from the protocol</a>
<ol>
- <li><a href="#event-definitions"><span class="secno">5.1 </span>Event definitions</a></li>
- <li><a href="#garbage-collection"><span class="secno">5.2 </span>Garbage collection</a></ol></li>
+ <li><a href="#parsing-websocket-urls"><span class="secno">5.1 </span>Parsing WebSocket URLs</a></li>
+ <li><a href="#event-definitions"><span class="secno">5.2 </span>Event definitions</a></li>
+ <li><a href="#garbage-collection"><span class="secno">5.3 </span>Garbage collection</a></ol></li>
<li><a class="no-num" href="#references">References</a></li>
<li><a class="no-num" href="#acknowledgements">Acknowledgements</a></ol>
<hr><h2 id="network-intro"><span class="secno">1 </span>Introduction</h2><p><i>This section is non-normative.</i><p>To enable Web applications to maintain bidirectional
@@ -449,7 +450,7 @@
subprotocols. The subprotocol names must all be strings that match
the requirements for elements that comprise the value of <code title="http-sec-websocket-protocol">Sec-WebSocket-Protocol</code>
header fields as defined by the WebSocket protocol specification. <a href="#refsWSP">[WSP]</a><p>When the <code>WebSocket()</code> constructor is invoked, the UA
- must run these steps:<ol><li><p><i>Parse a WebSocket URL's components</i> from the <var title="">url</var> argument, to obtain <var title="">host</var>,
+ must run these steps:<ol><li><p><i><a href="#parse-a-websocket-url-s-components">Parse a WebSocket URL's components</a></i> from the <var title="">url</var> argument, to obtain <var title="">host</var>,
<var title="">port</var>, <var title="">resource name</var>, and
<var title="">secure</var>. If this fails, throw a
<code>SyntaxError</code> exception and abort these steps. <a href="#refsWSP">[WSP]</a></li>
@@ -890,7 +891,57 @@
</ol><p>The <span>task source</span> for all <span title="concept-task">tasks</span> <span title="queue a
task">queued</span> in this section is the <dfn id="websocket-task-source">WebSocket task
- source</dfn>.<h3 id="event-definitions"><span class="secno">5.1 </span>Event definitions</h3><pre class="idl">[Constructor(DOMString type, optional <a href="#closeeventinit">CloseEventInit</a> eventInitDict)]
+ source</dfn>.<h3 id="parsing-websocket-urls"><span class="secno">5.1 </span>Parsing WebSocket URLs</h3><p>The steps to <dfn id="parse-a-websocket-url-s-components">parse a WebSocket URL's components</dfn> from
+ a string <var title="">url</var> are as follows. These steps return
+ either a <var title="">host</var>, a <var title="">port</var>, a
+ <var title="">resource name</var>, and a <var title="">secure</var>
+ flag, or they fail.<ol><li><p>If the <var title="">url</var> string is not an
+ <span>absolute URL</span>, then fail this algorithm.</li>
+
+ <li>
+
+ <p><span title="resolve a url">Resolve</span> the <var title="">url</var> string, with the <span>URL character
+ encoding</span> set to UTF-8. <a href="#refsRFC3629">[RFC3629]</a></p>
+ <p class="note">It doesn't matter what it is resolved relative to,
+ since we already know it is an <span>absolute URL</span> at this
+ point.</p>
+
+ </li>
+
+ <li><p>If <var title="">url</var> does not have a <span title="url-scheme"><scheme></span> component whose value,
+ when <span>converted to ASCII lowercase</span>, is either "<code title="">ws</code>" or "<code title="">wss</code>", then fail this
+ algorithm.</li>
+
+ <li><p>If <var title="">url</var> has a <span title="url-fragment"><fragment></span> component, then fail
+ this algorithm.</li>
+
+ <li><p>If the <span title="url-scheme"><scheme></span>
+ component of <var title="">url</var> is "<code title="">ws</code>",
+ set <var title="">secure</var> to false; otherwise, the <span title="url-scheme"><scheme></span> component is "<code title="">wss</code>", set <var title="">secure</var> to
+ true.</li>
+
+ <li><p>Let <var title="">host</var> be the value of the <span title="url-host"><host></span> component of <var title="">url</var>, <span>converted to ASCII
+ lowercase</span>.</li>
+ <li><p>If <var title="">url</var> has a <span title="url-port"><port></span> component, then let <var title="">port</var> be that component's value; otherwise, there is
+ no explicit <var title="">port</var>.</li>
+
+ <li><p>If there is no explicit <var title="">port</var>, then: if
+ <var title="">secure</var> is false, let <var title="">port</var>
+ be 80, otherwise let <var title="">port</var> be 443.</li>
+
+ <li><p>Let <var title="">resource name</var> be the value of the
+ <span title="url-path"><path></span> component (which might
+ be empty) of <var title="">url</var>.</li>
+ <li><p>If <var title="">resource name</var> is the empty string,
+ set it to a single character U+002F SOLIDUS (/).</li>
+
+ <li><p>If <var title="">url</var> has a <span title="url-query"><query></span> component, then append a
+ single U+003F QUESTION MARK character (?) to <var title="">resource
+ name</var>, followed by the value of the <span title="url-query"><query></span> component.</li>
+ <li><p>Return <var title="">host</var>, <var title="">port</var>,
+ <var title="">resource name</var>, and <var title="">secure</var>.</li>
+
+ </ol><h3 id="event-definitions"><span class="secno">5.2 </span>Event definitions</h3><pre class="idl">[Constructor(DOMString type, optional <a href="#closeeventinit">CloseEventInit</a> eventInitDict)]
interface <dfn id="closeevent">CloseEvent</dfn> : <span>Event</span> {
readonly attribute boolean <a href="#dom-closeevent-wasclean" title="dom-CloseEvent-wasClean">wasClean</a>;
readonly attribute unsigned short <a href="#dom-closeevent-code" title="dom-CloseEvent-code">code</a>;
@@ -912,7 +963,7 @@
attribute must return the value it was initialized to. When the
object is created, this attribute must be initialized to empty
string. It represents the WebSocket connection close reason provided
- by the server.<h3 id="garbage-collection"><span class="secno">5.2 </span>Garbage collection</h3><p>A <code><a href="#websocket">WebSocket</a></code> object whose <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code> attribute's value
+ by the server.<h3 id="garbage-collection"><span class="secno">5.3 </span>Garbage collection</h3><p>A <code><a href="#websocket">WebSocket</a></code> object whose <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code> attribute's value
was set to <code title="dom-WebSocket-CONNECTING"><a href="#dom-websocket-connecting">CONNECTING</a></code>
(0) as of the last time the <span>event loop</span> started
executing a <span title="concept-task">task</span> must not be
Received on Wednesday, 5 October 2011 01:58:34 UTC