Now that my patch has landed (ouch ouch ouch sorry sorry sorry) there 
has been a subtle change in the way views and frames work. It used to 
be that the root view of a view manager had no parent; each view 
manager managed a disjoint tree of frames. In order to handle IFRAMEs 
and other contained documents which overlap and otherwise interact 
with sibling content, view managers are now organized into a tree 
which reflects the document/subdocument tree. In particular a view 
manager for an IFRAME (or other such contained document) can have a 
root view whose parent view is non-null. In fact such a non-null 
parent view will belong to the view manager for the document that 
contains the IFRAME.

What this means is that while traversing views --- in particular, 
while traversing from child views to parents, but also when you 
traverse the children of a view --- you may step out of one view 
manager and into another. This is new behaviour. Surprisingly often 
this is what you want, but sometimes you don't want this to happen, in 
which case you must explicitly check to see when you're leaving the 
current view manager. There's a good example here:
http://bugzilla.mozilla.org/showattachment.cgi?attach_id=70236

For more information, see bug 91516.

Rob


Reply via email to