#include "third_party/blink/renderer/core/css/invalidation/style_invalidator.h"
#include "third_party/blink/renderer/core/css/invalidation/invalidation_set.h"
#include "third_party/blink/renderer/core/css/style_change_reason.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/dom/element_traversal.h"
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/html/html_slot_element.h"
#include "third_party/blink/renderer/core/inspector/inspector_trace_events.h"
namespace blink {
static const unsigned char* g_style_invalidator_tracing_enabled = …;
#define TRACE_STYLE_INVALIDATOR_INVALIDATION_IF_ENABLED(element, reason) …
void StyleInvalidator::Invalidate(Document& document, Element* root_element) { … }
StyleInvalidator::StyleInvalidator(
PendingInvalidationMap& pending_invalidation_map)
: … { … }
StyleInvalidator::~StyleInvalidator() = default;
void StyleInvalidator::PushInvalidationSet(
const InvalidationSet& invalidation_set) { … }
ALWAYS_INLINE bool StyleInvalidator::MatchesCurrentInvalidationSets(
Element& element) const { … }
bool StyleInvalidator::MatchesCurrentInvalidationSetsAsSlotted(
Element& element) const { … }
bool StyleInvalidator::MatchesCurrentInvalidationSetsAsParts(
Element& element) const { … }
void StyleInvalidator::SiblingData::PushInvalidationSet(
const SiblingInvalidationSet& invalidation_set) { … }
bool StyleInvalidator::SiblingData::MatchCurrentInvalidationSets(
Element& element,
StyleInvalidator& style_invalidator) { … }
void StyleInvalidator::PushInvalidationSetsForContainerNode(
ContainerNode& node,
SiblingData& sibling_data) { … }
ALWAYS_INLINE bool StyleInvalidator::CheckInvalidationSetsAgainstElement(
Element& element,
SiblingData& sibling_data) { … }
void StyleInvalidator::InvalidateShadowRootChildren(Element& element) { … }
void StyleInvalidator::InvalidateChildren(Element& element) { … }
void StyleInvalidator::Invalidate(Element& element, SiblingData& sibling_data) { … }
void StyleInvalidator::InvalidateSlotDistributedElements(
HTMLSlotElement& slot) const { … }
}