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
