Re: Shared workers - use .source instead of .ports[0] ?

On Tue, Apr 10, 2012 at 8: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?.


I think this ought to be considered as a last resort until we understand
the ramifications.  On a personal note, I think having *source* mean
different things in different contexts would introduce confusion and is not
in line with least-surprise.  Perhaps hixie can weigh in on this proposal.


>
>
>
>>
>>> 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:41:50 UTC