The HeadsUpDisplay object holds a bunch of references we shouldn't keep: chromeDocument, contentWindow, notificationBox and so on. We can get rid of all these and keep only one reference to the xul:tab object associated to the HUD. The xul:tab object is needed for a cleaner HUDService initialization and shutdown, opening and closing of HUDs would also be slimmer. Through out the code we do, indeed, make use of chromeDocument, notificationBox and so on. However, if we have the xul:tab object ref we can have simple/trivial getters to the rest of the objects we need. (this is follow up from bug 577721)
This is going to be fixed by bug 673148. The changes needed to use xul:tab refs were among the first changes I did when I submitted the first WIP patch there.