Re: What changes to Web Messaging spec are proposed? [Was: Re: Using ArrayBuffer as payload for binary data to/from Web Workers]

On Thu, Jun 2, 2011 at 4:16 PM, Kenneth Russell <kbr@google.com> wrote:
> On Thu, Jun 2, 2011 at 12:53 PM, David Levin <levin@chromium.org> wrote:
> The desire would be for this change to apply not just to the
> postMessage method on MessagePort and Worker but also to that on
> Window.

I agree--the postMessage interfaces shouldn't drift apart more than
necessary.  Adding another argument to window.postMessage would be
unfortunate, though: that brings it up to four, which is hitting the
limit of a sane, rememberable API.

Alternatively--and this has come up repeatedly of late--allow the
final argument to be an object.  If it's an object, it looks like
this:

port.postMessage({frameBuffer: frame}, {transfer: [frame], ports: [port]});

where "transfer" and "port" are both optional.  If it's an array, it
behaves as it does now.

This also allows preserving MessagePort error checking: you can still
throw INVALID_STATE_ERR if something other than a MessagePort is
included in ports.

-- 
Glenn Maynard

Received on Thursday, 2 June 2011 20:27:49 UTC