W3C home > Mailing lists > Public > public-html-commits@w3.org > August 2008

html5/spec Overview.html,1.1227,1.1228

From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
Date: Mon, 11 Aug 2008 07:34:09 +0000
To: public-html-commits@w3.org
Message-Id: <E1KSRur-0002fU-D7@lionel-hutz.w3.org>

Update of /sources/public/html5/spec
In directory hutz:/tmp/cvs-serv10215

Modified Files:
	Overview.html 
Log Message:
Add a startConversation() method that wraps new MessageChannel and postMessage() in a less expensive one-step operation. (credit: ab) (whatwg r2043)

Index: Overview.html
===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.1227
retrieving revision 1.1228
diff -u -d -r1.1227 -r1.1228
--- Overview.html	11 Aug 2008 05:38:18 -0000	1.1227
+++ Overview.html	11 Aug 2008 07:34:06 -0000	1.1228
@@ -44017,6 +44017,7 @@
   readonly attribute boolean <a href="#active0" title=dom-MessagePort-active>active</a>;
   boolean <a href="#postmessage2" title=dom-MessagePort-postMessage>postMessage</a>(in DOMString message);
   boolean <a href="#postmessage2" title=dom-MessagePort-postMessage>postMessage</a>(in DOMString message, in <a href="#messageport0">MessagePort</a> messagePort);
+  <a href="#messageport0">MessagePort</a> <a href="#startconversation" title=dom-MessagePort-startConversation>startConversation</a>(in DOMString message);
   void <a href="#start6" title=dom-MessagePort-start>start</a>();
   void <a href="#close3" title=dom-MessagePort-close>close</a>();
 
@@ -44187,6 +44188,75 @@
 
   <hr>
 
+  <p>The <dfn id=startconversation
+   title=dom-MessagePort-startConversation><code>startConversation(<var
+   title="">message</var>)</code></dfn> method is a convenience method that
+   simplifies create a new <code><a
+   href="#messagechannel">MessageChannel</a></code> and invoking <code
+   title=dom-MessagePort-postMessage><a
+   href="#postmessage2">postMessage()</a></code> with one of the new ports.
+   When invoked on a port <var title="">source port</var>, it must run the
+   following steps:
+
+  <ol>
+   <li>
+    <p>Let <var title="">message</var> be the method's first argument.
+
+   <li>
+    <p>If the <var title="">source port</var> is not entangled with another
+     port, then return null and abort these steps.
+   </li>
+   <!--
+   we don't raise an exception because this can happen moment's
+   notice, but we return false so that the caller can check whether
+   the port was active at time of calling without a race
+   condition. -->
+
+   <li>
+    <p>Let <var title="">target port</var> be the port with which <var
+     title="">source port</var> is entangled.
+
+   <li>
+    <p>Create an event that uses the <code><a
+     href="#messageevent">MessageEvent</a></code> interface, with the name
+     <code title=event-message><a href="#message2">message</a></code>, which
+     does not bubble, is cancelable, and has no default action.
+
+   <li>
+    <p>Let the <code title=dom-MessageEvent-data><a
+     href="#data4">data</a></code> attribute of the event have the value of
+     <var title="">message</var>, the method's first argument.
+
+   <li>
+    <p><a href="#create">Create a new <code>MessagePort</code> object</a>
+     owned by the <a href="#script2">script execution context</a>, and let
+     <var title="">port1</var> be that object.
+
+   <li>
+    <p><a href="#create">Create a new <code>MessagePort</code> object</a>
+     owned by the owner of the <var title="">target port</var>, and let <var
+     title="">port2</var> be that object.
+
+   <li>
+    <p><a href="#entangle">Entangle</a> the <var title="">port1</var> and
+     <var title="">port2</var> objects.
+
+   <li>
+    <p>Let the <code title=dom-MessageEvent-messagePort><a
+     href="#messageport">messagePort</a></code> attribute of the event be
+     <var title="">port2</var>.
+
+   <li>
+    <p>Return <var title="">port1</var> from the method, but continue with
+     these steps.
+
+   <li>
+    <p>Add the event to the <a href="#port-message">port message queue</a> of
+     <var title="">target port</var>.
+  </ol>
+
+  <hr>
+
   <p>The <dfn id=start6
    title=dom-MessagePort-start><code>start()</code></dfn> method must open
    its port's <a href="#port-message">port message queue</a>, if it is not
Received on Monday, 11 August 2008 07:34:42 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Thursday, 9 October 2008 20:32:58 GMT