I rewrote most of the frame traversal code in WebFrame to use DOM-style first/last/next/previous methods, to abstract access better in preparation for moving it down. As an added bonus, many formerly recursive methods are now iterative. Patch coming shortly.
Created attachment 5350 [details] the patch
Comment on attachment 5350 [details] the patch _closeOldDataSources now works from the first child to the last, but it used to work from the last child to the first. Looks fine, r=me.
I don't think the order is important since all it does is send a delegate message