Skip to content

Commit

Permalink
[giow] (1) Make postMessage() accept the second and third arguments i…
Browse files Browse the repository at this point in the history
…n either order. Compat with WebKit and hopefully solves the difficulty people have about remembering which goes first.

Fixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=13967

git-svn-id: http://svn.whatwg.org/webapps@6690 340c8d12-0b0e-0410-8428-c7bf67bfef74
  • Loading branch information
Hixie committed Oct 17, 2011
1 parent 022fe42 commit 1e588ea
Show file tree
Hide file tree
Showing 3 changed files with 98 additions and 17 deletions.
38 changes: 33 additions & 5 deletions complete.html
Expand Up @@ -240,7 +240,7 @@

<header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
<hgroup><h1 class=allcaps>HTML</h1>
<h2 class="no-num no-toc">Living Standard &mdash; Last Updated 15 October 2011</h2>
<h2 class="no-num no-toc">Living Standard &mdash; Last Updated 17 October 2011</h2>
</hgroup><dl><dt><strong>Web developer edition:</strong></dt>
<dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
<dt>Multiple-page version:</dt>
Expand Down Expand Up @@ -62527,6 +62527,7 @@ <h3 id=the-window-object><span class=secno>6.2 </span>The <code><a href=#window>

<!--POSTMSG--> // <a href=#web-messaging>cross-document messaging</a>
void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, DOMString targetOrigin, optional sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer);
void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer, DOMString targetOrigin);
<!--POSTMSG-->
// <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
[TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
Expand Down Expand Up @@ -81706,6 +81707,7 @@ <h5 id=user-agents><span class=secno>11.4.2.2 </span>User agents</h5>
<h4 id=posting-messages><span class=secno>11.4.3 </span>Posting messages</h4>

<dl class=domintro><dt><var title="">window</var> . <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage</a></code>(<var title="">message</var>, <var title="">targetOrigin</var> [, <var title="">transfer</var> ])</dt>
<dt><var title="">window</var> . <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage</a></code>(<var title="">message</var> [, <var title="">transfer</var> ], <var title="">targetOrigin</var>)</dt>

<dd>

Expand All @@ -81722,6 +81724,10 @@ <h4 id=posting-messages><span class=secno>11.4.3 </span>Posting messages</h4>
<p>Throws a <code><a href=#datacloneerror>DataCloneError</a></code> if <var title="">transfer</var> array contains duplicate objects or if
<var title="">message</var> could not be cloned.</p>

<p>The second and third arguments can be given in either order,
and the <var title="">transfer</var> array can be omitted
entirely.</p>

</dd>

</dl><p class=note>When posting a message to a <code><a href=#window>Window</a></code> of a
Expand All @@ -81738,12 +81744,33 @@ <h4 id=posting-messages><span class=secno>11.4.3 </span>Posting messages</h4>

<div class=impl>

<p>When a script invokes the <dfn id=dom-window-postmessage title=dom-window-postMessage><code>postMessage(<var title="">message</var>, <var title="">targetOrigin</var>, <var title="">transfer</var>)</code></dfn> method (with two or three
arguments) on a <code><a href=#window>Window</a></code> object, the user agent must
follow these steps:</p>
<p>When a script invokes the <dfn id=dom-window-postmessage title=dom-window-postMessage><code>postMessage()</code></dfn>
method (with two or three arguments) on a <code><a href=#window>Window</a></code>
object, the user agent must follow these steps:</p>

<ol><!-- a lot of this is similar or identical to port.postMessage --><li>

<p>Let <var title="">message</var> be the first argument.</p>

</li>

<li>

<p>Let <var title="">targetOrigin</var> be the second argument if
the second argument is a string, or else the third argument.</p>

</li>

<li>

<p>Let <var title="">transfer</var> be the second argument if the
second argument is an array of <code><a href=#transferable>Transferable</a></code> objects,
or else the third argument.</p>

</li>

<li>

<p>If the value of the <var title="">targetOrigin</var> argument
is neither a single U+002A ASTERISK character (*), a single U+002F
SOLIDUS character (/), nor an <a href=#absolute-url>absolute URL</a>, then
Expand All @@ -81767,7 +81794,8 @@ <h4 id=posting-messages><span class=secno>11.4.3 </span>Posting messages</h4>

<li>

<p>If the method was invoked with a third argument <var title="">transfer</var>, run these substeps:</p>
<p>If the method was invoked with three arguments, run these
substeps:</p>

<ol><li>

Expand Down
38 changes: 33 additions & 5 deletions index
Expand Up @@ -240,7 +240,7 @@

<header class=head id=head><p><a class=logo href=http://www.whatwg.org/><img alt=WHATWG height=101 src=/images/logo width=101></a></p>
<hgroup><h1 class=allcaps>HTML</h1>
<h2 class="no-num no-toc">Living Standard &mdash; Last Updated 15 October 2011</h2>
<h2 class="no-num no-toc">Living Standard &mdash; Last Updated 17 October 2011</h2>
</hgroup><dl><dt><strong>Web developer edition:</strong></dt>
<dd><strong><a href=http://developers.whatwg.org/>http://developers.whatwg.org/</a></strong></dd>
<dt>Multiple-page version:</dt>
Expand Down Expand Up @@ -62527,6 +62527,7 @@ interface <dfn id=window>Window</dfn> : <a href=#eventtarget>EventTarget</a> {

<!--POSTMSG--> // <a href=#web-messaging>cross-document messaging</a>
void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, DOMString targetOrigin, optional sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer);
void <a href=#dom-window-postmessage title=dom-window-postMessage>postMessage</a>(any message, sequence&lt;<a href=#transferable>Transferable</a>&gt; transfer, DOMString targetOrigin);
<!--POSTMSG-->
// <a href=#event-handler-idl-attributes>event handler IDL attributes</a>
[TreatNonCallableAsNull] attribute <a href=#function>Function</a>? <a href=#handler-onabort title=handler-onabort>onabort</a>;
Expand Down Expand Up @@ -81706,6 +81707,7 @@ function receiver(e) {
<h4 id=posting-messages><span class=secno>11.4.3 </span>Posting messages</h4>

<dl class=domintro><dt><var title="">window</var> . <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage</a></code>(<var title="">message</var>, <var title="">targetOrigin</var> [, <var title="">transfer</var> ])</dt>
<dt><var title="">window</var> . <code title=dom-window-postMessage><a href=#dom-window-postmessage>postMessage</a></code>(<var title="">message</var> [, <var title="">transfer</var> ], <var title="">targetOrigin</var>)</dt>

<dd>

Expand All @@ -81722,6 +81724,10 @@ function receiver(e) {
<p>Throws a <code><a href=#datacloneerror>DataCloneError</a></code> if <var title="">transfer</var> array contains duplicate objects or if
<var title="">message</var> could not be cloned.</p>

<p>The second and third arguments can be given in either order,
and the <var title="">transfer</var> array can be omitted
entirely.</p>

</dd>

</dl><p class=note>When posting a message to a <code><a href=#window>Window</a></code> of a
Expand All @@ -81738,12 +81744,33 @@ function receiver(e) {

<div class=impl>

<p>When a script invokes the <dfn id=dom-window-postmessage title=dom-window-postMessage><code>postMessage(<var title="">message</var>, <var title="">targetOrigin</var>, <var title="">transfer</var>)</code></dfn> method (with two or three
arguments) on a <code><a href=#window>Window</a></code> object, the user agent must
follow these steps:</p>
<p>When a script invokes the <dfn id=dom-window-postmessage title=dom-window-postMessage><code>postMessage()</code></dfn>
method (with two or three arguments) on a <code><a href=#window>Window</a></code>
object, the user agent must follow these steps:</p>

<ol><!-- a lot of this is similar or identical to port.postMessage --><li>

<p>Let <var title="">message</var> be the first argument.</p>

</li>

<li>

<p>Let <var title="">targetOrigin</var> be the second argument if
the second argument is a string, or else the third argument.</p>

</li>

<li>

<p>Let <var title="">transfer</var> be the second argument if the
second argument is an array of <code><a href=#transferable>Transferable</a></code> objects,
or else the third argument.</p>

</li>

<li>

<p>If the value of the <var title="">targetOrigin</var> argument
is neither a single U+002A ASTERISK character (*), a single U+002F
SOLIDUS character (/), nor an <a href=#absolute-url>absolute URL</a>, then
Expand All @@ -81767,7 +81794,8 @@ function receiver(e) {

<li>

<p>If the method was invoked with a third argument <var title="">transfer</var>, run these substeps:</p>
<p>If the method was invoked with three arguments, run these
substeps:</p>

<ol><li>

Expand Down
39 changes: 32 additions & 7 deletions source
Expand Up @@ -70997,6 +70997,7 @@ interface <dfn>Window</dfn> : <span>EventTarget</span> {

<!--END w3c-html--><!--POSTMSG--> // <span>cross-document messaging</span>
void <span title="dom-window-postMessage">postMessage</span>(any message, DOMString targetOrigin, optional sequence&lt;<span>Transferable</span>&gt; transfer);
void <span title="dom-window-postMessage">postMessage</span>(any message, sequence&lt;<span>Transferable</span>&gt; transfer, DOMString targetOrigin);
<!--START w3c-html--><!--POSTMSG-->
// <span>event handler IDL attributes</span>
[TreatNonCallableAsNull] attribute <span>Function</span>? <span title="handler-onabort">onabort</span>;
Expand Down Expand Up @@ -92580,6 +92581,7 @@ function receiver(e) {
<dl class="domintro">

<dt><var title="">window</var> . <code title="dom-window-postMessage">postMessage</code>(<var title="">message</var>, <var title="">targetOrigin</var> [, <var title="">transfer</var> ])</dt>
<dt><var title="">window</var> . <code title="dom-window-postMessage">postMessage</code>(<var title="">message</var> [, <var title="">transfer</var> ], <var title="">targetOrigin</var>)</dt>

<dd>

Expand All @@ -92599,6 +92601,10 @@ function receiver(e) {
title="">transfer</var> array contains duplicate objects or if
<var title="">message</var> could not be cloned.</p>

<p>The second and third arguments can be given in either order,
and the <var title="">transfer</var> array can be omitted
entirely.</p>

</dd>

</dl>
Expand All @@ -92618,14 +92624,33 @@ function receiver(e) {
<div class="impl">

<p>When a script invokes the <dfn
title="dom-window-postMessage"><code>postMessage(<var
title="">message</var>, <var title="">targetOrigin</var>, <var
title="">transfer</var>)</code></dfn> method (with two or three
arguments) on a <code>Window</code> object, the user agent must
follow these steps:</p>
title="dom-window-postMessage"><code>postMessage()</code></dfn>
method (with two or three arguments) on a <code>Window</code>
object, the user agent must follow these steps:</p>

<ol> <!-- a lot of this is similar or identical to port.postMessage -->

<li>

<p>Let <var title="">message</var> be the first argument.</p>

</li>

<li>

<p>Let <var title="">targetOrigin</var> be the second argument if
the second argument is a string, or else the third argument.</p>

</li>

<li>

<p>Let <var title="">transfer</var> be the second argument if the
second argument is an array of <code>Transferable</code> objects,
or else the third argument.</p>

</li>

<li>

<p>If the value of the <var title="">targetOrigin</var> argument
Expand All @@ -92651,8 +92676,8 @@ function receiver(e) {

<li>

<p>If the method was invoked with a third argument <var
title="">transfer</var>, run these substeps:</p>
<p>If the method was invoked with three arguments, run these
substeps:</p>

<ol>

Expand Down

0 comments on commit 1e588ea

Please sign in to comment.