summaryrefslogtreecommitdiffstats
path: root/layout/forms/nsNumberControlFrame.cpp
diff options
context:
space:
mode:
authorMatt A. Tobin <email@mattatobin.com>2020-04-16 16:37:28 -0400
committerMatt A. Tobin <email@mattatobin.com>2020-04-16 16:37:28 -0400
commit4375774c901bac4bd1ecaa35b40f55397044b7e9 (patch)
tree5c1a39a427b89390ee5ae54f75b04fa6536fb4a4 /layout/forms/nsNumberControlFrame.cpp
parentc66ed1275f1039fdf23a8f2c172d7c0b4691d1c2 (diff)
downloadUXP-4375774c901bac4bd1ecaa35b40f55397044b7e9.tar
UXP-4375774c901bac4bd1ecaa35b40f55397044b7e9.tar.gz
UXP-4375774c901bac4bd1ecaa35b40f55397044b7e9.tar.lz
UXP-4375774c901bac4bd1ecaa35b40f55397044b7e9.tar.xz
UXP-4375774c901bac4bd1ecaa35b40f55397044b7e9.zip
Bug 1331322 - Allow tagging of pseudo-implementing native anonymous content with the pseudo type at creation time
* Stop using a node bit for HasExplicitBaseURI * Move MAY_HAVE_CLASS to mBoolFlags * Add a flag to indicate that a node is native anonymous content * Allow tagging of pseudo-implementing native anonymous content with the pseudo type at creation time, and eliminate explicit style contexts in nsIAnonymousContentCreator::ContentInfo Tag #1375
Diffstat (limited to 'layout/forms/nsNumberControlFrame.cpp')
-rw-r--r--layout/forms/nsNumberControlFrame.cpp33
1 files changed, 8 insertions, 25 deletions
diff --git a/layout/forms/nsNumberControlFrame.cpp b/layout/forms/nsNumberControlFrame.cpp
index 9724109cb..64e3df0fe 100644
--- a/layout/forms/nsNumberControlFrame.cpp
+++ b/layout/forms/nsNumberControlFrame.cpp
@@ -325,27 +325,15 @@ nsresult
nsNumberControlFrame::MakeAnonymousElement(Element** aResult,
nsTArray<ContentInfo>& aElements,
nsIAtom* aTagName,
- CSSPseudoElementType aPseudoType,
- nsStyleContext* aParentContext)
+ CSSPseudoElementType aPseudoType)
{
// Get the NodeInfoManager and tag necessary to create the anonymous divs.
nsCOMPtr<nsIDocument> doc = mContent->GetComposedDoc();
RefPtr<Element> resultElement = doc->CreateHTMLElement(aTagName);
+ resultElement->SetPseudoElementType(aPseudoType);
- // If we legitimately fail this assertion and need to allow
- // non-pseudo-element anonymous children, then we'll need to add a branch
- // that calls ResolveStyleFor((*aResult)->AsElement(), aParentContext)") to
- // set newStyleContext.
- NS_ASSERTION(aPseudoType != CSSPseudoElementType::NotPseudo,
- "Expecting anonymous children to all be pseudo-elements");
// Associate the pseudo-element with the anonymous child
- RefPtr<nsStyleContext> newStyleContext =
- PresContext()->StyleSet()->ResolvePseudoElementStyle(mContent->AsElement(),
- aPseudoType,
- aParentContext,
- resultElement);
-
- if (!aElements.AppendElement(ContentInfo(resultElement, newStyleContext))) {
+ if (!aElements.AppendElement(resultElement)) {
return NS_ERROR_OUT_OF_MEMORY;
}
@@ -382,8 +370,7 @@ nsNumberControlFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
rv = MakeAnonymousElement(getter_AddRefs(mOuterWrapper),
aElements,
nsGkAtoms::div,
- CSSPseudoElementType::mozNumberWrapper,
- mStyleContext);
+ CSSPseudoElementType::mozNumberWrapper);
NS_ENSURE_SUCCESS(rv, rv);
ContentInfo& outerWrapperCI = aElements.LastElement();
@@ -392,8 +379,7 @@ nsNumberControlFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
rv = MakeAnonymousElement(getter_AddRefs(mTextField),
outerWrapperCI.mChildren,
nsGkAtoms::input,
- CSSPseudoElementType::mozNumberText,
- outerWrapperCI.mStyleContext);
+ CSSPseudoElementType::mozNumberText);
NS_ENSURE_SUCCESS(rv, rv);
mTextField->SetAttr(kNameSpaceID_None, nsGkAtoms::type,
@@ -442,8 +428,7 @@ nsNumberControlFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
rv = MakeAnonymousElement(getter_AddRefs(mSpinBox),
outerWrapperCI.mChildren,
nsGkAtoms::div,
- CSSPseudoElementType::mozNumberSpinBox,
- outerWrapperCI.mStyleContext);
+ CSSPseudoElementType::mozNumberSpinBox);
NS_ENSURE_SUCCESS(rv, rv);
ContentInfo& spinBoxCI = outerWrapperCI.mChildren.LastElement();
@@ -452,16 +437,14 @@ nsNumberControlFrame::CreateAnonymousContent(nsTArray<ContentInfo>& aElements)
rv = MakeAnonymousElement(getter_AddRefs(mSpinUp),
spinBoxCI.mChildren,
nsGkAtoms::div,
- CSSPseudoElementType::mozNumberSpinUp,
- spinBoxCI.mStyleContext);
+ CSSPseudoElementType::mozNumberSpinUp);
NS_ENSURE_SUCCESS(rv, rv);
// Create the ::-moz-number-spin-down pseudo-element:
rv = MakeAnonymousElement(getter_AddRefs(mSpinDown),
spinBoxCI.mChildren,
nsGkAtoms::div,
- CSSPseudoElementType::mozNumberSpinDown,
- spinBoxCI.mStyleContext);
+ CSSPseudoElementType::mozNumberSpinDown);
return rv;
}