#include "third_party/blink/renderer/core/css/invalidation/invalidation_set.h"
#include <memory>
#include <utility>
#include "base/memory/values_equivalent.h"
#include "third_party/blink/renderer/core/css/resolver/style_resolver.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/inspector/inspector_trace_events.h"
#include "third_party/blink/renderer/core/inspector/invalidation_set_to_selector_map.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/traced_value.h"
#include "third_party/blink/renderer/platform/wtf/text/string_builder.h"
namespace blink {
namespace {
template <InvalidationSet::BackingType type>
bool BackingEqual(const InvalidationSet::BackingFlags& a_flags,
const InvalidationSet::Backing<type>& a,
const InvalidationSet::BackingFlags& b_flags,
const InvalidationSet::Backing<type>& b) { … }
const unsigned char* GetCachedTracingFlags() { … }
}
#define TRACE_STYLE_INVALIDATOR_INVALIDATION_SELECTORPART_IF_ENABLED( \
element, reason, invalidationSet, singleSelectorPart) …
void InvalidationSetDeleter::Destruct(const InvalidationSet* obj) { … }
bool InvalidationSet::operator==(const InvalidationSet& other) const { … }
InvalidationSet::InvalidationSet(InvalidationType type)
: … { … }
bool InvalidationSet::InvalidatesElement(Element& element) const { … }
bool InvalidationSet::InvalidatesTagName(Element& element) const { … }
void InvalidationSet::Combine(const InvalidationSet& other) { … }
void InvalidationSet::Destroy() const { … }
void InvalidationSet::ClearAllBackings() { … }
bool InvalidationSet::HasEmptyBackings() const { … }
const AtomicString* InvalidationSet::FindAnyClass(Element& element) const { … }
const AtomicString* InvalidationSet::FindAnyAttribute(Element& element) const { … }
void InvalidationSet::AddClass(const AtomicString& class_name) { … }
void InvalidationSet::AddId(const AtomicString& id) { … }
void InvalidationSet::AddTagName(const AtomicString& tag_name) { … }
void InvalidationSet::AddAttribute(const AtomicString& attribute) { … }
void InvalidationSet::SetWholeSubtreeInvalid() { … }
namespace {
scoped_refptr<DescendantInvalidationSet> CreateSelfInvalidationSet() { … }
scoped_refptr<DescendantInvalidationSet> CreatePartInvalidationSet() { … }
}
InvalidationSet* InvalidationSet::SelfInvalidationSet() { … }
InvalidationSet* InvalidationSet::PartInvalidationSet() { … }
void InvalidationSet::WriteIntoTrace(perfetto::TracedValue context) const { … }
String InvalidationSet::ToString() const { … }
SiblingInvalidationSet::SiblingInvalidationSet(
scoped_refptr<DescendantInvalidationSet> descendants)
: … { … }
SiblingInvalidationSet::SiblingInvalidationSet()
: … { … }
DescendantInvalidationSet& SiblingInvalidationSet::EnsureSiblingDescendants() { … }
DescendantInvalidationSet& SiblingInvalidationSet::EnsureDescendants() { … }
std::ostream& operator<<(std::ostream& ostream, const InvalidationSet& set) { … }
}