websocket; hixie: Make WebSocket.binaryType more like XHR.responseType (whatwg r6158)

websocket; hixie: Make WebSocket.binaryType more like XHR.responseType
(whatwg r6158)

http://dev.w3.org/cvsweb/html5/websockets/Overview.html?r1=1.216&r2=1.217&f=h
http://html5.org/tools/web-apps-tracker?from=6157&to=6158

===================================================================
RCS file: /sources/public/html5/websockets/Overview.html,v
retrieving revision 1.216
retrieving revision 1.217
diff -u -d -r1.216 -r1.217
--- Overview.html 27 May 2011 23:31:59 -0000 1.216
+++ Overview.html 31 May 2011 19:58:28 -0000 1.217
@@ -211,7 +211,7 @@
 
    <h1>The WebSocket API</h1>
    
-   <h2 class="no-num no-toc" id="editor-s-draft-27-may-2011">Editor's Draft 27 May 2011</h2>
+   <h2 class="no-num no-toc" id="editor-s-draft-31-may-2011">Editor's Draft 31 May 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>
@@ -312,7 +312,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 27 May 2011 Editor's Draft.
+  This specification is the 31 May 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>
@@ -425,7 +425,7 @@
 
   // messaging
            attribute <span>Function</span> <a href="#handler-websocket-onmessage" title="handler-WebSocket-onmessage">onmessage</a>;
-           attribute object <a href="#dom-websocket-binarytype" title="dom-WebSocket-binaryType">binaryType</a>;
+           attribute DOMString <a href="#dom-websocket-binarytype" title="dom-WebSocket-binaryType">binaryType</a>;
   void <a href="#dom-websocket-send" title="dom-WebSocket-send">send</a>(in DOMString data);
   void <a href="#dom-websocket-send" title="dom-WebSocket-send">send</a>(in <span>ArrayBuffer</span> data);
   void <a href="#dom-websocket-send" title="dom-WebSocket-send">send</a>(in <span>Blob</span> data);
@@ -661,29 +661,26 @@
    time.</p>
 
   </div><hr><p>When a <code><a href="#websocket">WebSocket</a></code> object is created, its <dfn id="dom-websocket-binarytype" title="dom-WebSocket-binaryType"><code>binaryType</code></dfn> IDL
-  attribute must be set to the <code>Blob</code> interface object
-  associated with the same global object as the <code title="dom-WebSocket"><a href="#dom-websocket">WebSocket</a></code> constructor used to create
-  the <code><a href="#websocket">WebSocket</a></code> object. On getting, it must return the
-  last value it was set to. On setting, if the new value is either the
-  <code>Blob</code> or <code>ArrayBuffer</code> interface object
-  associated with the same global object as the <code title="dom-WebSocket"><a href="#dom-websocket">WebSocket</a></code> constructor used to create
-  the <code><a href="#websocket">WebSocket</a></code> object, then set the IDL attribute to
-  this new value. Otherwise, throw a <code>NOT_SUPPORTED_ERR</code>
-  exception.<p class="note">This attribute allows authors to control how binary
-  data is exposed to scripts. By setting the attribute to
-  <code>Blob</code>, binary data is returned in <code>Blob</code>
-  form; by setting it to <code>ArrayBuffer</code>, it is returned in
-  <code>ArrayBuffer</code> form. User agents can use this as a hint
-  for how to handle incoming binary data: if the attribute is set to
-  <code>Blob</code>, it is safe to spool it to disk, and if it is set
-  to <code>ArrayBuffer</code>, it is likely more efficient to keep the
-  data in memory. Naturally, user agents are encouraged to use more
-  subtle heuristics to decide whether to keep incoming data in memory
-  or not, e.g. based on how big the data is or how common it is for a
-  script to change the attribute at the last minute. This latter
-  aspect is important in particular because it is quite possible for
-  the attribute to be changed after the user agent has received the
-  data but before the user agent as fired the event for it.<p>The <dfn id="dom-websocket-send" title="dom-WebSocket-send"><code>send(<var title="">data</var>)</code></dfn> method transmits data using the
+  attribute must be set to the string "<code title="">blob</code>". On
+  getting, it must return the last value it was set to. On setting, if
+  the new value is either the string "<code title="">blob</code>" or
+  the string "<code title="">arraybuffer</code>", then set the IDL
+  attribute to this new value. Otherwise, throw a
+  <code>SYNTAX_ERR</code> exception.<p class="note">This attribute allows authors to control how binary
+  data is exposed to scripts. By setting the attribute to "<code title="">blob</code>", binary data is returned in <code>Blob</code>
+  form; by setting it to "<code title="">arraybuffer</code>", it is
+  returned in <code>ArrayBuffer</code> form. User agents can use this
+  as a hint for how to handle incoming binary data: if the attribute
+  is set to "<code title="">blob</code>", it is safe to spool it to
+  disk, and if it is set to "<code title="">arraybuffer</code>", it is
+  likely more efficient to keep the data in memory. Naturally, user
+  agents are encouraged to use more subtle heuristics to decide
+  whether to keep incoming data in memory or not, e.g. based on how
+  big the data is or how common it is for a script to change the
+  attribute at the last minute. This latter aspect is important in
+  particular because it is quite possible for the attribute to be
+  changed after the user agent has received the data but before the
+  user agent as fired the event for it.<p>The <dfn id="dom-websocket-send" title="dom-WebSocket-send"><code>send(<var title="">data</var>)</code></dfn> method transmits data using the
   connection. If the <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code> attribute is
   <code title="dom-WebSocket-CONNECTING"><a href="#dom-websocket-connecting">CONNECTING</a></code>, it must
   raise an <code>INVALID_STATE_ERR</code> exception. Otherwise, the
@@ -792,14 +789,13 @@
 
     <p>If <var title="">type</var> indicates that the data is Binary,
     and <code title="dom-WebSocket-binaryType"><a href="#dom-websocket-binarytype">binaryType</a></code> is
-    set to <code>Blob</code>, then set <var title="">event</var>'s
-    <code title="dom-MessageEvent-data">data</code> attribute to a new
+    set to "<code title="">blob</code>", then set <var title="">event</var>'s <code title="dom-MessageEvent-data">data</code> attribute to a new
     <code>Blob</code> object that represents <var title="">data</var>
     as its raw data. <a href="#refsFILEAPI">[FILEAPI]</a></p>
 
     <p>If <var title="">type</var> indicates that the data is Binary,
     and <code title="dom-WebSocket-binaryType"><a href="#dom-websocket-binarytype">binaryType</a></code> is
-    set to <code>ArrayBuffer</code>, then set <var title="">event</var>'s <code title="dom-MessageEvent-data">data</code> attribute to a new
+    set to "<code title="">arraybuffer</code>", then set <var title="">event</var>'s <code title="dom-MessageEvent-data">data</code> attribute to a new
     read-only <code>ArrayBuffer</code> object whose contents are <var title="">data</var>. <a href="#refsTYPEDARRAY">[TYPEDARRAY]</a></p>
 
    </li>
@@ -815,12 +811,11 @@
   perform the above steps efficiently before they run the task,
   picking tasks from other <span title="task queue">task queues</span>
   while they prepare the buffers if not. For example, if the <code title="dom-WebSocket-binaryType"><a href="#dom-websocket-binarytype">binaryType</a></code> attribute was set
-  to <code>Blob</code> when the data arrived, and the user agent
-  spooled all the data to disk, but just before running the above
-  <span title="concept-task">task</span> for this particular message
-  the script switched <code title="dom-WebSocket-binaryType"><a href="#dom-websocket-binarytype">binaryType</a></code> to
-  <code>ArrayBuffer</code>, the user agent would want to page the data
-  back to RAM before running this <span title="concept-task">task</span> so as to avoid stalling the main
+  to "<code title="">blob</code>" when the data arrived, and the user
+  agent spooled all the data to disk, but just before running the
+  above <span title="concept-task">task</span> for this particular
+  message the script switched <code title="dom-WebSocket-binaryType"><a href="#dom-websocket-binarytype">binaryType</a></code> to "<code title="">arraybuffer</code>", the user agent would want to page the
+  data back to RAM before running this <span title="concept-task">task</span> so as to avoid stalling the main
   thread while it created the <code>ArrayBuffer</code> object.<hr><p>When <i>the WebSocket closing handshake is started</i>, the user
   agent must <span>queue a task</span> to change the <code title="dom-WebSocket-readyState"><a href="#dom-websocket-readystate">readyState</a></code> attribute's value
   to <code title="dom-WebSocket-CLOSING"><a href="#dom-websocket-closing">CLOSING</a></code> (2). (If the

Received on Tuesday, 31 May 2011 19:59:44 UTC