Eric thinks HistoryController should point back to FrameLoader instead of Frame. I'm not entirely convinced, but I made a patch to see what it would be like. If he thinks we should do this, I'll defer to his experience.
Created attachment 40987 [details] Patch v1
Created attachment 40988 [details] HistoryController back pointer
Comment on attachment 40988 [details] HistoryController back pointer I think this is OK either way. Pointing back to the frame is OK because everybody points back to the frame. It's all one big frame-lifetime-associated family of objects. Pointing back to the frame loader is OK because the frame loader is the immediate owner of the history controller, and it's the thing the creates and destroys the history controller. I have a hard time getting strong feelings either way. The part I don't like is functions that are only needed once per page on the main frame that exist here on a pre-frame object. r=me, and you can decide whether or not to land this. I really have no preference.
I think I'm going to leave this as-is. Thanks for your comments.