summaryrefslogtreecommitdiff
path: root/layout/style/nsCSSPseudoElements.h
diff options
context:
space:
mode:
Diffstat (limited to 'layout/style/nsCSSPseudoElements.h')
-rw-r--r--layout/style/nsCSSPseudoElements.h14
1 files changed, 14 insertions, 0 deletions
diff --git a/layout/style/nsCSSPseudoElements.h b/layout/style/nsCSSPseudoElements.h
index 90db43c7d3..69dcad3de5 100644
--- a/layout/style/nsCSSPseudoElements.h
+++ b/layout/style/nsCSSPseudoElements.h
@@ -40,6 +40,10 @@
// API for creating pseudo-implementing native anonymous content in JS with this
// pseudo-element?
#define CSS_PSEUDO_ELEMENT_IS_JS_CREATED_NAC (1<<5)
+// Is this pseudo-element a pseudo-element that supports a tree-abiding
+// pseudo-element following it, such as ::after or ::before? See
+// https://w3c.github.io/csswg-drafts/css-pseudo-4/#tree-abiding.
+#define CSS_PSEUDO_ELEMENT_SUPPORTS_TREE_ABIDING (1<<6)
namespace mozilla {
@@ -78,6 +82,10 @@ public:
static bool IsCSS2PseudoElement(nsIAtom *aAtom);
+ static bool IsHybridPseudoElement(Type aType);
+
+ static bool IsTreeAbidingPseudoElement(Type aType);
+
#define CSS_PSEUDO_ELEMENT(_name, _value, _flags) \
static nsICSSPseudoElement* _name;
#include "nsCSSPseudoElementList.h"
@@ -105,6 +113,12 @@ public:
return PseudoElementHasFlags(aType, CSS_PSEUDO_ELEMENT_IS_JS_CREATED_NAC);
}
+ static bool PseudoElementSupportsTreeAbiding(const Type aType)
+ {
+ return PseudoElementHasFlags(aType,
+ CSS_PSEUDO_ELEMENT_SUPPORTS_TREE_ABIDING);
+ }
+
static bool IsEnabled(Type aType, EnabledState aEnabledState)
{
return !PseudoElementHasFlags(aType, CSS_PSEUDO_ELEMENT_UA_SHEET_ONLY) ||