commit a062fcd17e5acf8ba9eb025b007f1ecd55b8d7f2
parent 91e78bdb109604b522c9e68819577df441da68c6
Author: agoloman <agoloman@mozilla.com>
Date: Fri, 3 Oct 2025 00:54:39 +0300
Revert "Bug 1986711: apply code formatting via Lando" for causing failures @test_arrowpanel.xhtml.
This reverts commit 76fe3a3e4aad85707c3633a036893ebb69b0c305.
Revert "Bug 1986711 - More explicitly disable menupopup frame hypothetical position. r=layout-reviewers,dshin"
This reverts commit 06c81d279021fa93a04f3b347899bd378bb1c5a6.
Revert "Bug 1986711 - Closed menupopups shouldn't have an intrinsic size. r=layout-reviewers,dshin"
This reverts commit 49cad6474205d4aa20122884c666fdba9b752a9a.
Diffstat:
2 files changed, 10 insertions(+), 28 deletions(-)
diff --git a/layout/generic/AbsoluteContainingBlock.cpp b/layout/generic/AbsoluteContainingBlock.cpp
@@ -950,32 +950,17 @@ void AbsoluteContainingBlock::ReflowAbsoluteFrame(
nscoord availISize = logicalCBSize.ISize(wm);
ReflowInput::InitFlags initFlags;
- const bool staticPosIsCBOrigin = [&] {
- if (aFlags.contains(AbsPosReflowFlag::IsGridContainerCB)) {
- // When a grid container generates the abs.pos. CB for a *child* then
- // the static position is determined via CSS Box Alignment within the
- // abs.pos. CB (a grid area, i.e. a piece of the grid). In this
- // scenario, due to the multiple coordinate spaces in play, we use a
- // convenience flag to simply have the child's ReflowInput give it a
- // static position at its abs.pos. CB origin, and then we'll align &
- // offset it from there.
- nsIFrame* placeholder = aKidFrame->GetPlaceholderFrame();
- if (placeholder && placeholder->GetParent() == aDelegatingFrame) {
- return true;
- }
- }
- if (aKidFrame->IsMenuPopupFrame()) {
- // Popups never use their static pos.
- return true;
+ if (aFlags.contains(AbsPosReflowFlag::IsGridContainerCB)) {
+ // When a grid container generates the abs.pos. CB for a *child* then
+ // the static position is determined via CSS Box Alignment within the
+ // abs.pos. CB (a grid area, i.e. a piece of the grid). In this scenario,
+ // due to the multiple coordinate spaces in play, we use a convenience
+ // flag to simply have the child's ReflowInput give it a static position
+ // at its abs.pos. CB origin, and then we'll align & offset it from there.
+ nsIFrame* placeholder = aKidFrame->GetPlaceholderFrame();
+ if (placeholder && placeholder->GetParent() == aDelegatingFrame) {
+ initFlags += ReflowInput::InitFlag::StaticPosIsCBOrigin;
}
- // TODO(emilio): Either reparent the top layer placeholder frames to the
- // viewport, or return true here for top layer frames more generally (not
- // only menupopups), see https://github.com/w3c/csswg-drafts/issues/8040.
- return false;
- }();
-
- if (staticPosIsCBOrigin) {
- initFlags += ReflowInput::InitFlag::StaticPosIsCBOrigin;
}
const bool kidFrameMaySplit =
diff --git a/layout/xul/nsMenuPopupFrame.cpp b/layout/xul/nsMenuPopupFrame.cpp
@@ -500,9 +500,6 @@ void nsMenuPopupFrame::DidSetComputedStyle(ComputedStyle* aOldStyle) {
nscoord nsMenuPopupFrame::IntrinsicISize(const IntrinsicSizeInput& aInput,
IntrinsicISizeType aType) {
- if (!IsOpen()) {
- return 0;
- }
nscoord iSize = nsBlockFrame::IntrinsicISize(aInput, aType);
if (!ShouldExpandToInflowParentOrAnchor()) {
return iSize;