mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-06 07:48:38 +09:00
Issue #2765 - Part 2: Create a helper function for resolving the non-NAC style context of a given NAC
This commit is contained in:
parent
8236eec152
commit
b2c435a189
2 changed files with 34 additions and 0 deletions
|
|
@ -9337,3 +9337,28 @@ nsLayoutUtils::ComputeGeometryBox(nsIFrame* aFrame,
|
|||
|
||||
return r;
|
||||
}
|
||||
|
||||
/* static */ nsStyleContext*
|
||||
nsLayoutUtils::GetNonAnonymousStyleContext(nsIFrame* aFrame)
|
||||
{
|
||||
nsIContent* node = aFrame->GetContent();
|
||||
MOZ_ASSERT(node, "No content for the given frame?");
|
||||
while (node && node->IsInNativeAnonymousSubtree()) {
|
||||
node = node->GetParent();
|
||||
}
|
||||
MOZ_ASSERT(node, "Native anonymous element with no originating node?");
|
||||
if (nsIFrame* primaryFrame = node->GetPrimaryFrame()) {
|
||||
return primaryFrame->StyleContext();
|
||||
}
|
||||
// If the element doesn't have primary frame, get the computed style
|
||||
// from the element directly.
|
||||
nsPresContext* pc = aFrame->PresContext();
|
||||
MOZ_ASSERT(node == pc->Document()->GetRootElement(),
|
||||
"Root element is the only case for this fallback "
|
||||
"path to be triggered");
|
||||
RefPtr<nsStyleContext> styleContext =
|
||||
pc->StyleSet()->ResolveStyleFor(node->AsElement(), nullptr);
|
||||
// Dropping the strong reference is fine because the style should be
|
||||
// held strongly by the element.
|
||||
return styleContext.get();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2878,6 +2878,15 @@ public:
|
|||
return ResolveToLength<true>(aGap, aPercentageBasis);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the style context associated with the nearest non-native-anonymous
|
||||
* ancestor of the given frame.
|
||||
*
|
||||
* @param aFrame The frame associated with native anonymous content.
|
||||
* @return The resolved style context of the nearest non-anonymous DOM ancestor.
|
||||
*/
|
||||
static nsStyleContext* GetNonAnonymousStyleContext(nsIFrame* aFrame);
|
||||
|
||||
private:
|
||||
static uint32_t sFontSizeInflationEmPerLine;
|
||||
static uint32_t sFontSizeInflationMinTwips;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue