#include "third_party/blink/renderer/core/css/invalidation/rule_invalidation_data.h"
#include "base/memory/values_equivalent.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/dom/space_split_string.h"
#include "third_party/blink/renderer/core/inspector/inspector_trace_events.h"
namespace blink {
namespace {
template <typename KeyType,
typename MapType = HashMap<KeyType, scoped_refptr<InvalidationSet>>>
bool InvalidationSetMapsEqual(const MapType& a, const MapType& b) { … }
}
bool RuleInvalidationData::operator==(const RuleInvalidationData& other) const { … }
void RuleInvalidationData::Clear() { … }
void RuleInvalidationData::CollectInvalidationSetsForClass(
InvalidationLists& invalidation_lists,
Element& element,
const AtomicString& class_name) const { … }
void RuleInvalidationData::CollectSiblingInvalidationSetForClass(
InvalidationLists& invalidation_lists,
Element& element,
const AtomicString& class_name,
unsigned min_direct_adjacent) const { … }
void RuleInvalidationData::CollectInvalidationSetsForId(
InvalidationLists& invalidation_lists,
Element& element,
const AtomicString& id) const { … }
void RuleInvalidationData::CollectSiblingInvalidationSetForId(
InvalidationLists& invalidation_lists,
Element& element,
const AtomicString& id,
unsigned min_direct_adjacent) const { … }
void RuleInvalidationData::CollectInvalidationSetsForAttribute(
InvalidationLists& invalidation_lists,
Element& element,
const QualifiedName& attribute_name) const { … }
void RuleInvalidationData::CollectSiblingInvalidationSetForAttribute(
InvalidationLists& invalidation_lists,
Element& element,
const QualifiedName& attribute_name,
unsigned min_direct_adjacent) const { … }
void RuleInvalidationData::CollectInvalidationSetsForPseudoClass(
InvalidationLists& invalidation_lists,
Element& element,
CSSSelector::PseudoType pseudo) const { … }
void RuleInvalidationData::CollectUniversalSiblingInvalidationSet(
InvalidationLists& invalidation_lists,
unsigned min_direct_adjacent) const { … }
void RuleInvalidationData::CollectNthInvalidationSet(
InvalidationLists& invalidation_lists) const { … }
void RuleInvalidationData::CollectPartInvalidationSet(
InvalidationLists& invalidation_lists) const { … }
bool RuleInvalidationData::NeedsHasInvalidationForClass(
const AtomicString& class_name) const { … }
bool RuleInvalidationData::NeedsHasInvalidationForAttribute(
const QualifiedName& attribute_name) const { … }
bool RuleInvalidationData::NeedsHasInvalidationForId(
const AtomicString& id) const { … }
bool RuleInvalidationData::NeedsHasInvalidationForTagName(
const AtomicString& tag_name) const { … }
bool RuleInvalidationData::NeedsHasInvalidationForInsertedOrRemovedElement(
Element& element) const { … }
bool RuleInvalidationData::NeedsHasInvalidationForPseudoClass(
CSSSelector::PseudoType pseudo_type) const { … }
String RuleInvalidationData::ToString() const { … }
void RuleInvalidationData::ExtractInvalidationSets(
InvalidationSet* invalidation_set,
DescendantInvalidationSet*& descendants,
SiblingInvalidationSet*& siblings) { … }
}