Index: Source/core/css/CSSSelector.h |
diff --git a/Source/core/css/CSSSelector.h b/Source/core/css/CSSSelector.h |
index 2a2c36afcfae59ee734f4ac7a3fc5483ac2a4a99..c181f890e8439afb7a447790931bac0dfe8d55a9 100644 |
--- a/Source/core/css/CSSSelector.h |
+++ b/Source/core/css/CSSSelector.h |
@@ -297,7 +297,8 @@ namespace blink { |
bool isContentPseudoElement() const; |
bool isShadowPseudoElement() const; |
bool isHostPseudoClass() const; |
- |
+ bool isTreeBoundaryCrossing() const; |
+ bool isInsertionPointCrossing() const; |
// FIXME: selectors with no tagHistory() get a relation() of Descendant (and sometimes even SubSelector). It should instead be |
// None. |
Relation relation() const { return static_cast<Relation>(m_relation); } |
@@ -447,6 +448,17 @@ inline bool CSSSelector::isShadowPseudoElement() const |
return m_match == PseudoElement && pseudoType() == PseudoShadow; |
} |
+inline bool CSSSelector::isTreeBoundaryCrossing() const |
+{ |
+ return m_match == PseudoClass && (pseudoType() == PseudoHost || pseudoType() == PseudoHostContext); |
+} |
+ |
+inline bool CSSSelector::isInsertionPointCrossing() const |
+{ |
+ return (m_match == PseudoClass && pseudoType() == PseudoHostContext) |
+ || (m_match == PseudoElement && pseudoType() == PseudoContent); |
+} |
+ |
inline void CSSSelector::setValue(const AtomicString& value) |
{ |
ASSERT(m_match != Tag); |