#include "third_party/blink/renderer/core/css/selector_filter.h"
#include "third_party/blink/renderer/core/css/css_selector.h"
#include "third_party/blink/renderer/core/css/style_rule.h"
#include "third_party/blink/renderer/core/css/style_scope.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/flat_tree_traversal.h"
namespace blink {
namespace {
enum { … };
inline bool IsExcludedAttribute(const AtomicString& name) { … }
template <class Func>
inline void CollectElementIdentifierHashes(const Element& element,
Func&& func) { … }
void CollectDescendantCompoundSelectorIdentifierHashes(
const CSSSelector* selector,
CSSSelector::RelationType relation,
const StyleScope* style_scope,
Vector<unsigned>& hashes);
inline void CollectDescendantSelectorIdentifierHashes(
const CSSSelector& selector,
const StyleScope* style_scope,
Vector<unsigned>& hashes) { … }
void CollectDescendantCompoundSelectorIdentifierHashes(
const CSSSelector* selector,
CSSSelector::RelationType relation,
const StyleScope* style_scope,
Vector<unsigned>& hashes) { … }
}
void SelectorFilter::PushParentStackFrame(Element& parent) { … }
void SelectorFilter::PopParentStackFrame() { … }
void SelectorFilter::PushAllParentsOf(TreeScope& tree_scope) { … }
void SelectorFilter::PushAncestors(const Node& node) { … }
void SelectorFilter::PushParent(Element& parent) { … }
void SelectorFilter::PopParent(Element& parent) { … }
void SelectorFilter::CollectIdentifierHashes(
const CSSSelector& selector,
const StyleScope* style_scope,
Vector<unsigned>& bloom_hash_backing) { … }
void SelectorFilter::Trace(Visitor* visitor) const { … }
}