- From: Ian Hickson via cvs-syncmail <cvsmail@w3.org>
- Date: Tue, 16 Dec 2008 01:34:00 +0000
- To: public-html-commits@w3.org
Update of /sources/public/html5/spec
In directory hutz:/tmp/cvs-serv1805
Modified Files:
Overview.html
Log Message:
Drop MessagePort.onclose. Make MessagePort's message queue actually plug straight into the event loop so you can't lost events when sending ports across to other event loops. (whatwg r2532)
Index: Overview.html
===================================================================
RCS file: /sources/public/html5/spec/Overview.html,v
retrieving revision 1.1702
retrieving revision 1.1703
diff -u -d -r1.1702 -r1.1703
--- Overview.html 16 Dec 2008 01:01:42 -0000 1.1702
+++ Overview.html 16 Dec 2008 01:33:57 -0000 1.1703
@@ -34383,11 +34383,7 @@
must be the empty string, the <code title=dom-MessageEvent-origin><a href=#dom-messageevent-origin>origin</a></code> attribute must be the
empty string, the <code title=dom-MessageEvent-source><a href=#dom-messageevent-source>source</a></code> attribute must be
null, and the <code title=dom-MessageEvent-messagePort><a href=#dom-messageevent-messageport>messagePort</a></code>
- attribute must be null.</p><hr><p><a href=#concept-task title=concept-task>Tasks</a> in <a href=#server-sent-events>server-sent
- events</a> and <a href=#network>Web Sockets</a> use their own <a href=#task-source title="task source">task sources</a>, but the <a href=#task-source>task
- source</a> for the <a href=#concept-task title=concept-task>tasks</a> in
- <a href=#crossDocumentMessages>cross-document messaging</a> and <a href=#channel-messaging>channel
- messaging</a> is the <dfn id=posted-message-task-source>posted message task source</dfn>.<h3 id=server-sent-events><span class=secno>7.2 </span><dfn>Server-sent events</dfn></h3><!-- eventsource --><p>This section describes a mechanism for allowing servers to
+ attribute must be null.<h3 id=server-sent-events><span class=secno>7.2 </span><dfn>Server-sent events</dfn></h3><!-- eventsource --><p>This section describes a mechanism for allowing servers to
dispatch DOM events into documents that expect it. The
<code><a href=#the-eventsource-element>eventsource</a></code> element provides a simple interface to
this mechanism.<h4 id=the-remoteeventtarget-interface><span class=secno>7.2.1 </span>The <code><a href=#remoteeventtarget>RemoteEventTarget</a></code> interface</h4><p>Any object that implements the <code>EventTarget</code> interface
@@ -35474,7 +35470,8 @@
not hostile. This section introduces a messaging system that allows
documents to communicate with each other regardless of their source
domain, in a way designed to not enable cross-site scripting
- attacks.<h4 id=introduction-5><span class=secno>7.4.1 </span>Introduction</h4><p><em>This section is non-normative.</em><div class=example>
+ attacks.<p>The <a href=#task-source>task source</a> for the <a href=#concept-task title=concept-task>tasks</a> in <a href=#crossDocumentMessages>cross-document
+ messaging</a> is the <dfn id=posted-message-task-source>posted message task source</dfn>.<h4 id=introduction-5><span class=secno>7.4.1 </span>Introduction</h4><p><em>This section is non-normative.</em><div class=example>
<p>For example, if document A contains an <code><a href=#the-iframe-element>iframe</a></code>
element that contains document B, and script in document A calls
@@ -35723,13 +35720,12 @@
// event handler attributes
attribute <span>EventListener</span> <a href=#handler-messageport-onmessage title=handler-MessagePort-onmessage>onmessage</a>;
- attribute <span>EventListener</span> <a href=#handler-messageport-onclose title=handler-MessagePort-onclose>onclose</a>;
};</pre><p>Objects implementing the <code><a href=#messageport>MessagePort</a></code> interface must
also implement the <code>EventTarget</code> interface.<p>Each <code><a href=#messageport>MessagePort</a></code> object can be entangled with
another (a symmetric relationship). Each <code><a href=#messageport>MessagePort</a></code>
- object also has a <dfn id=port-message-queue>port message queue</dfn>, initial empty. A
- <a href=#port-message-queue>port message queue</a> can be open or closed, and is
- initially closed.<p>When the user agent is to <dfn id=create-a-new-messageport-object>create a new
+ object also has a <a href=#task-source>task source</a> called the <dfn id=port-message-queue>port
+ message queue</dfn>, initial empty. A <a href=#port-message-queue>port message
+ queue</a> can be open or closed, and is initially closed.<p>When the user agent is to <dfn id=create-a-new-messageport-object>create a new
<code>MessagePort</code> object</dfn> owned by a <a href=#script-s-global-object>script's
global object</a> object <var title="">owner</var>, it must
instantiate a new <code><a href=#messageport>MessagePort</a></code> object, and let its owner
@@ -35791,9 +35787,8 @@
<li><p>If the <var title="">source port</var> is not entangled with
another port, then return and abort these steps.</li>
<!-- we don't raise an exception because this can happen moment's
- notice. listen to onclose if you want to know when things start
- going wonky. (We don't return false because if the port is _about_
- to be closed, the message might not be listened for anyway.) -->
+ notice. we don't return false because if the port is _about_
+ to be closed, the message might not be listened for anyway. -->
<li><p>Let <var title="">target port</var> be the port with which
<var title="">source port</var> is entangled.</li>
@@ -35854,10 +35849,9 @@
another port, then return <var title="">port1</var> and abort these
steps.</p></li>
<!- - we don't raise an exception because this can happen moment's
- notice. listen to onclose if you want to know when things start
- going wonky. (We don't return null because then we'd end up with
+ notice. we don't return null because then we'd end up with
null derefs. better to just let the likely next postMessage call
- fall on the floor) - ->
+ fall on the floor. - ->
<li><p>Let <var title="">target port</var> be the port with which
<var title="">source port</var> is entangled.</p></li>
@@ -35891,30 +35885,14 @@
</ol>
--><hr><p>The <dfn id=dom-messageport-start title=dom-MessagePort-start><code>start()</code></dfn>
method must open its port's <a href=#port-message-queue>port message queue</a>, if it
- is not already open.<p>When a port's <a href=#port-message-queue>port message queue</a> is open and
- contains an event, the user agent must <a href=#queue-a-task>queue a task</a> in
- the <a href=#event-loop>event loop</a> to dispatch the first event in the queue
- on the <code><a href=#messageport>MessagePort</a></code> object, and remove the event from
- the queue. The <a href=#task-source>task source</a> for this <a href=#concept-task title=concept-task>task</a> is the <a href=#posted-message-task-source>posted message task
- source</a>.<p class=note>If the <a href=#script-group>script group</a> of the port's event
+ is not already open.<p>When a port's <a href=#port-message-queue>port message queue</a> is open, the
+ <a href=#event-loop>event loop</a> must use it as one of its <a href=#task-source title="task
+ source">task sources</a>.<p class=note>If the <a href=#script-group>script group</a> of the port's event
handlers is <i>frozen</i>, then the messages are lost.</p><hr><p>The <dfn id=dom-messageport-close title=dom-MessagePort-close><code>close()</code></dfn>
method, when called on a port <var title="">local port</var> that is
- entangled with another port, must cause the user agents to run the
- following steps:<ol><li><p>Unentangle the two ports.</li>
-
- <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
- event</a> called <code title=event-close>close</code> at the
- port on which the method was called.</li>
-
- <li><p><a href=#queue-a-task>Queue a task</a> to <a href=#fire-a-simple-event>fire a simple
- event</a> called <code title=event-close>close</code> at the
- other port.</li>
-
- </ol><p>The <a href=#task-source>task source</a> for the two <a href=#concept-task title=concept-task>tasks</a> above is the <a href=#posted-message-task-source>posted message
- task source</a>.
-
- <p>If the method is called on a port that is not entangled, then the
- method must do nothing.</p><hr><p>The following are the <a href=#event-handler-dom-attributes>event handler DOM attributes</a>
+ entangled with another port, must cause the user agents to
+ unentangle the two ports. If the method is called on a port that is
+ not entangled, then the method must do nothing.</p><hr><p>The following are the <a href=#event-handler-dom-attributes>event handler DOM attributes</a>
that must be supported by objects implementing the
<code><a href=#messageport>MessagePort</a></code> interface:<dl><dt><dfn id=handler-messageport-onmessage title=handler-MessagePort-onmessage><code>onmessage</code></dfn></dt>
@@ -35930,11 +35908,6 @@
</dd>
- <dt><dfn id=handler-messageport-onclose title=handler-MessagePort-onclose><code>onclose</code></dfn></dt>
-
- <dd><p>Must be invoked whenever a <code title=event-close>close</code> event is targeted at or bubbles
- through the <code><a href=#messageport>MessagePort</a></code> object.</dd>
-
</dl><h5 id=ports-and-garbage-collection><span class=secno>7.5.3.1 </span>Ports and garbage collection</h5><p>User agents must act as if <code><a href=#messageport>MessagePort</a></code> objects have
a strong reference to their entangled <code><a href=#messageport>MessagePort</a></code>
object.<div class=note>
Received on Tuesday, 16 December 2008 01:34:10 UTC