- From: Andrew Wilson <atwilson@google.com>
- Date: Tue, 10 Apr 2012 10:33:55 -0700
- To: Simon Pieters <simonp@opera.com>
- Cc: Jarred Nicholls <jarred@webkit.org>, Jonas Sicking <jonas@sicking.cc>, "public-webapps@w3c.org" <public-webapps@w3c.org>
- Message-ID: <CAArhhivbqdL=ieE3S3sMP4zrt1s=wZtz8po0ZLbuuzzRciGE-A@mail.gmail.com>
I'll agree that having to use ports[0] to access the MessagePort in a connect event has always felt a bit like an API wart. However, I don't entirely recall why we wanted to have the connect event use the MessageEvent interface. So I'd be uncomfortable with changing connect event to not match that interface without understanding why we made those interfaces match in the first place (perhaps Ian can chime in here). I'll also note that the MessageEvent for cross-document messaging has a |ports| attribute, so I'm not certain why removing this attribute on the connect event "makes it closer to the [cross-document messaging] API" - can you clarify your reasoning here? Also, since MessagePort is not a WindowProxy, I'm not sure we want to encourage developers to treat them as the same by putting them both as the |source| attribute in MessageEvents in different contexts, especially since the postMessage() APIs don't precisely match. -atw On Tue, Apr 10, 2012 at 5:27 AM, Simon Pieters <simonp@opera.com> wrote: > On Tue, 10 Apr 2012 14:01:47 +0200, Jarred Nicholls <jarred@webkit.org> > wrote: > > On Tue, Apr 10, 2012 at 1:20 AM, Simon Pieters <simonp@opera.com> wrote: >> >> On Wed, 04 Apr 2012 18:37:46 +0200, Jonas Sicking <jonas@sicking.cc> >>> wrote: >>> >>> Sounds great to me. The ports attribute is basically useless except in >>> >>>> this >>>> one instance since ports are these days expose as part of structured >>>> clones. >>>> >>>> Avoiding using it in this arguably weird way in this one instance seems >>>> like a win to me. >>>> >>>> >>> I'd like to have an opinion from WebKit and Microsoft about this >>> proposal. >>> Can someone comment or cc relevant people, please? >>> >>> >> FWIW this to me seems like a good improvement to the intuitiveness. >> > > OK. To make things clear, are you OK with making this change in WebKit? > > Since >> a MessageEvent interface is being used, qualifying that *source* >> WindowProxy >> >> is populated is all that's needed? >> > > It wouldn't be a WindowProxy, but a port. I'd also make .ports null. The > IDL for MessageEvent's source member would need to change type from > WindowProxy? to object?. > > > >> >>> cheers >>> >>> >>> / Jonas >>> >>>> >>>> On Wednesday, April 4, 2012, Simon Pieters wrote: >>>> >>>> Hi, >>>> >>>>> >>>>> In Opera Extensions we use something that resembles shared workers. One >>>>> modification is that the 'connect' event's source port is exposed in >>>>> .source instead of in .ports[0], to make it closer to the API for >>>>> cross-document messaging. Maybe we should make this change to Shared >>>>> Workers as well. >>>>> >>>>> I think shared workers hasn't seen wide adoption yet, so maybe changes >>>>> like this are still possible. >>>>> >>>>> What do people think? >>>>> >>>>> currently: >>>>> onconnect = function(e) { e.ports[0].postMessage('pong') } >>>>> >>>>> proposed change: >>>>> onconnect = function(e) { e.source.postMessage('pong') } >>>>> >>>>> -- >>>>> Simon Pieters >>>>> Opera Software >>>>> >>>>> >>>>> >>>>> >>> -- >>> Simon Pieters >>> Opera Software >>> >>> >>> > > -- > Simon Pieters > Opera Software > >
Received on Tuesday, 10 April 2012 17:34:25 UTC