- From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
- Date: Mon, 11 Aug 2008 07:34:09 +0000
- To: public-html-commits@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 UTC