Re: [whatwg] onclose events for MessagePort

On Tue, 29 Oct 2013, Ian Hickson wrote:
> 
> Consider these three scenarios:
> 
> A. Page Alpha opens a shared worker, and they communicate using a pair of 
> MessagePorts. Alpha is navigated away, going to Beta in a different 
> origin. Later, the user hits back, and since Alpha is still in the 
> bfcache, the shared worker can still communicate, and the messages that 
> were sent while Alpha was away get delivered.
> 
> B. Page Gamma is has an iframe. In that iframe, there's page Alpha, which 
> opens a shared worker, and they communicate using a pair of MessagePorts. 
> Alpha is navigated away, leading the iframe to Beta in a different origin. 
> Later, the user hits back, and since Alpha is still in the bfcache, the 
> shared worker can still communicate, and the messages that were sent while 
> Alpha was away get delivered.
> 
> C. Page Gamma is has an iframe. In that iframe, there's page Alpha, which 
> opens a shared worker, and they communicate using a pair of MessagePorts. 
> Alpha then passes a reference to the port to Gamma. Then, Alpha is 
> navigated away, leading the iframe to Beta in a different origin. Gamma 
> and the shared worker can communicate.
> 
> A and C are mutually exclusive. Either the port's messages get delivered 
> while Alpha is away, or they don't.

Looks like Safari, Chrome, and (according to Anne, thanks!) IE10, all act 
in a manner that makes C impossible:

   http://www.hixie.ch/tests/adhoc/dom/web-apps/postMessage/ports/001.html

Basically, when a frame receives a port, it gets assigned to that frame, 
and when the frame is navigated, the port stops firing events on itself.

Unless someone objects, that's what I'm going to spec.

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Wednesday, 30 October 2013 20:34:24 UTC