Open Bug 1561482 Opened 5 years ago Updated 2 years ago

Make xul popups an abspos containing block

Categories

(Core :: Layout, task)

task

Tracking

()

People

(Reporter: bgrins, Unassigned)

References

Details

Discussion at:

It turns out there's a workaround for Bug 1492582 (html root node in browser.xhtml) by removing a position: absolute CSS rule (https://bugzilla.mozilla.org/show_bug.cgi?id=1492582#c49 / https://searchfox.org/mozilla-central/rev/1133b6716d9a8131c09754f3f29288484896b8b6/browser/base/content/browser.css#120). So this might not turn out to be a true blocker for that bug but it'd be nice if we didn't accidentally bump into this problem again if a rule like that got re-added, and it sounds like this makes sense to do anyway:

(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...

No longer blocks: 1492582
See Also: → 1492582
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.