There is an unnecessary cycle that starts and ends at a XUL element: 1. The element's `mControllers' slot holds an nsXULControllers object. 2. The nsXULControllers object holds an nsXULCommandDispatcher object. 3. The nsXULCommandDispatcher object holds an nsXULElement. It turns out that (according to hyatt), the reference from nsXULControllers to nsXULCommandDispatcher is old and crufty and superceded by nsXULDocument's ownership of the command dispatcher. I've verified this by grovelling through the existing JS and XUL that refers to a 'commandDispatcher' attribute. Breaking this dependency fixes a -monster- leak.
marking M11. fixing this leak will make XUL 99.9% clean
fix checked in, r=hyatt a=chofmann
BULK MOVE: Changing component from XUL to XP Toolkit/Widgets: XUL. XUL component will be deleted.