#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_DOM_LIVE_NODE_LIST_BASE_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_DOM_LIVE_NODE_LIST_BASE_H_
#include "base/check_op.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/dom/element_traversal.h"
#include "third_party/blink/renderer/core/dom/node_list_invalidation_type.h"
#include "third_party/blink/renderer/core/html/collection_type.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
namespace blink {
class Document;
enum class NodeListSearchRoot { … };
class CORE_EXPORT LiveNodeListBase : public GarbageCollectedMixin { … };
ALWAYS_INLINE bool LiveNodeListBase::ShouldInvalidateTypeOnAttributeChange(
NodeListInvalidationType type,
const QualifiedName& attr_name) { … }
template <typename MatchFunc>
Element* LiveNodeListBase::TraverseMatchingElementsForwardToOffset(
Element& current_element,
const ContainerNode* stay_within,
unsigned offset,
unsigned& current_offset,
MatchFunc is_match) { … }
template <typename MatchFunc>
Element* LiveNodeListBase::TraverseMatchingElementsBackwardToOffset(
Element& current_element,
const ContainerNode* stay_within,
unsigned offset,
unsigned& current_offset,
MatchFunc is_match) { … }
}
#endif