diff --git a/dom/base/Element.cpp b/dom/base/Element.cpp index 4137b593c2..a377b06e47 100644 --- a/dom/base/Element.cpp +++ b/dom/base/Element.cpp @@ -1485,6 +1485,27 @@ Element::GetElementsByClassName(const nsAString& aClassNames, return NS_OK; } +CSSPseudoElementType +Element::GetPseudoElementType() const { + if (!HasProperties()) { + return CSSPseudoElementType::NotPseudo; + } + nsresult rv = NS_OK; + auto raw = GetProperty(nsGkAtoms::pseudoProperty, &rv); + if (rv == NS_PROPTABLE_PROP_NOT_THERE) { + return CSSPseudoElementType::NotPseudo; + } + return CSSPseudoElementType(reinterpret_cast(raw)); +} + +void +Element::SetPseudoElementType(CSSPseudoElementType aPseudo) { + static_assert(sizeof(CSSPseudoElementType) <= sizeof(uintptr_t), + "Need to be able to store this in a void*"); + MOZ_ASSERT(aPseudo != CSSPseudoElementType::NotPseudo); + SetProperty(nsGkAtoms::pseudoProperty, reinterpret_cast(aPseudo)); +} + /** * Returns the count of descendants (inclusive of aContent) in * the uncomposed document that are explicitly set as editable. diff --git a/dom/base/Element.h b/dom/base/Element.h index c602fce1fe..cf342e94d1 100644 --- a/dom/base/Element.h +++ b/dom/base/Element.h @@ -814,24 +814,9 @@ public: already_AddRefed GetElementsByClassName(const nsAString& aClassNames); - CSSPseudoElementType GetPseudoElementType() const { - if (!HasProperties()) { - return CSSPseudoElementType::NotPseudo; - } - nsresult rv = NS_OK; - auto raw = GetProperty(nsGkAtoms::pseudoProperty, &rv); - if (rv == NS_PROPTABLE_PROP_NOT_THERE) { - return CSSPseudoElementType::NotPseudo; - } - return CSSPseudoElementType(reinterpret_cast(raw)); - } + CSSPseudoElementType GetPseudoElementType() const; - void SetPseudoElementType(CSSPseudoElementType aPseudo) { - static_assert(sizeof(CSSPseudoElementType) <= sizeof(uintptr_t), - "Need to be able to store this in a void*"); - MOZ_ASSERT(aPseudo != CSSPseudoElementType::NotPseudo); - SetProperty(nsGkAtoms::pseudoProperty, reinterpret_cast(aPseudo)); - } + void SetPseudoElementType(CSSPseudoElementType aPseudo); private: /**