Re: [XBL] Question: stopping event forwarding in section 3.10

On Tue, 7 Nov 2006, Marcos Caceres wrote:
> 
> in section 3.10, it reads: "When a binding is detached, the 
> xblLeftDocument() method must be invoked on the binding's 
> implementation. Then, shadow tree must be removed, the implementation 
> must be removed from the bound element's list of binding 
> implementations, and any forwarding of events to the binding must be 
> stopped for this bound element."
> 
> Just out of interest, why is stopping forwarding of events last? (or at 
> least, that is what is implied to me by the text above) wouldn't it be 
> more logical to stop events being forwarded to the implementation before 
> the UA starts to destroy it... just in case an event slips through (as 
> could be the case in a multi-threaded scenario). I'm sure there is a 
> good reason, but I'm just wondering what the logic is here; that's all?  

The multi-threaded case isn't currently covered by XBL (or the DOM in 
general); to handle multi-threaded cases where events could be dispatched 
to a running thread or where events on one thread could have access to 
bindings or nodes on another would require massive changes to the entire 
specified infrastructure of the DOM.

In the single-threaded case, it doesn't matter what order the changes 
above are done in, as far as I can tell.

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

Received on Friday, 5 January 2007 20:44:19 UTC