(In reply to Boris Zbarsky [:bzbarsky, bz on IRC] from comment #48)
Making the popup an abspos containing block would make a lot of sense to me.
As far as current behavior in XUL: the root is not an abspos containing block in xul per the first link in comment 43 and neither is the popup (it's explicitly
FCDATA_SKIP_ABSPOS_PUSH, like most XUL frame construction data).
GetGeometricParent will return the content parent, sure, per the second link in comment 43. But then when we go to
nsFrameConstructorState::AddChild we will presumably get null in
outOfFlowFrameList->containingBlock and therefore not actually put the thing out of flow at all. There would be no placeholder, and it would just be treated as if it were not abspos in terms of rendering. This does raise the question of why it has abspos styling at all, assuming my analysis is correct...