Bug 1906792 Part 3 - Move ContainIntrinsicISize() calls into IntrinsicISize() helper for flex and grid container. r=layout-reviewers,emilio

Differential Revision: https://phabricator.services.mozilla.com/D216000
This commit is contained in:
Ting-Yu Lin
2024-07-09 18:49:33 +00:00
parent 8087c0ed21
commit 38f5786fbe
2 changed files with 14 additions and 20 deletions

View File

@@ -6415,6 +6415,10 @@ void nsFlexContainerFrame::ReflowPlaceholders(
nscoord nsFlexContainerFrame::IntrinsicISize(gfxContext* aRenderingContext,
IntrinsicISizeType aType) {
if (Maybe<nscoord> containISize = ContainIntrinsicISize()) {
return *containISize;
}
nscoord containerISize = 0;
const nsStylePosition* stylePos = StylePosition();
const FlexboxAxisTracker axisTracker(this);
@@ -6477,12 +6481,8 @@ nscoord nsFlexContainerFrame::IntrinsicISize(gfxContext* aRenderingContext,
/* virtual */
nscoord nsFlexContainerFrame::GetMinISize(gfxContext* aRenderingContext) {
if (mCachedMinISize == NS_INTRINSIC_ISIZE_UNKNOWN) {
if (Maybe<nscoord> containISize = ContainIntrinsicISize()) {
mCachedMinISize = *containISize;
} else {
mCachedMinISize =
IntrinsicISize(aRenderingContext, IntrinsicISizeType::MinISize);
}
mCachedMinISize =
IntrinsicISize(aRenderingContext, IntrinsicISizeType::MinISize);
}
return mCachedMinISize;
@@ -6491,12 +6491,8 @@ nscoord nsFlexContainerFrame::GetMinISize(gfxContext* aRenderingContext) {
/* virtual */
nscoord nsFlexContainerFrame::GetPrefISize(gfxContext* aRenderingContext) {
if (mCachedPrefISize == NS_INTRINSIC_ISIZE_UNKNOWN) {
if (Maybe<nscoord> containISize = ContainIntrinsicISize()) {
mCachedPrefISize = *containISize;
} else {
mCachedPrefISize =
IntrinsicISize(aRenderingContext, IntrinsicISizeType::PrefISize);
}
mCachedPrefISize =
IntrinsicISize(aRenderingContext, IntrinsicISizeType::PrefISize);
}
return mCachedPrefISize;

View File

@@ -9446,6 +9446,10 @@ void nsGridContainerFrame::DidSetComputedStyle(ComputedStyle* aOldStyle) {
nscoord nsGridContainerFrame::IntrinsicISize(gfxContext* aRenderingContext,
IntrinsicISizeType aType) {
if (Maybe<nscoord> containISize = ContainIntrinsicISize()) {
return *containISize;
}
// Calculate the sum of column sizes under intrinsic sizing.
// http://dev.w3.org/csswg/css-grid/#intrinsic-sizes
NormalizeChildLists();
@@ -9517,10 +9521,7 @@ nscoord nsGridContainerFrame::GetMinISize(gfxContext* aRC) {
}
if (mCachedMinISize == NS_INTRINSIC_ISIZE_UNKNOWN) {
Maybe<nscoord> containISize = ContainIntrinsicISize();
mCachedMinISize = containISize
? *containISize
: IntrinsicISize(aRC, IntrinsicISizeType::MinISize);
mCachedMinISize = IntrinsicISize(aRC, IntrinsicISizeType::MinISize);
}
return mCachedMinISize;
}
@@ -9532,10 +9533,7 @@ nscoord nsGridContainerFrame::GetPrefISize(gfxContext* aRC) {
}
if (mCachedPrefISize == NS_INTRINSIC_ISIZE_UNKNOWN) {
Maybe<nscoord> containISize = ContainIntrinsicISize();
mCachedPrefISize = containISize
? *containISize
: IntrinsicISize(aRC, IntrinsicISizeType::PrefISize);
mCachedPrefISize = IntrinsicISize(aRC, IntrinsicISizeType::PrefISize);
}
return mCachedPrefISize;
}