#include "third_party/blink/renderer/core/html/html_slot_element.h"
#include "base/containers/adapters.h"
#include "base/containers/contains.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_assigned_nodes_options.h"
#include "third_party/blink/renderer/core/css/style_change_reason.h"
#include "third_party/blink/renderer/core/css/style_engine.h"
#include "third_party/blink/renderer/core/dom/events/event.h"
#include "third_party/blink/renderer/core/dom/flat_tree_node_data.h"
#include "third_party/blink/renderer/core/dom/mutation_observer.h"
#include "third_party/blink/renderer/core/dom/node_computed_style.h"
#include "third_party/blink/renderer/core/dom/node_traversal.h"
#include "third_party/blink/renderer/core/dom/shadow_root.h"
#include "third_party/blink/renderer/core/dom/slot_assignment.h"
#include "third_party/blink/renderer/core/dom/text.h"
#include "third_party/blink/renderer/core/dom/whitespace_attacher.h"
#include "third_party/blink/renderer/core/frame/web_feature.h"
#include "third_party/blink/renderer/core/html_names.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/core/style/computed_style.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
namespace blink {
namespace {
constexpr size_t kLCSTableSizeLimit = …;
}
HTMLSlotElement::HTMLSlotElement(Document& document)
: … { … }
AtomicString HTMLSlotElement::NormalizeSlotName(const AtomicString& name) { … }
const AtomicString& HTMLSlotElement::UserAgentDefaultSlotName() { … }
const AtomicString& HTMLSlotElement::UserAgentCustomAssignSlotName() { … }
const HeapVector<Member<Node>>& HTMLSlotElement::AssignedNodes() const { … }
namespace {
HeapVector<Member<Node>> CollectFlattenedAssignedNodes(
const HTMLSlotElement& slot) { … }
}
const HeapVector<Member<Node>> HTMLSlotElement::FlattenedAssignedNodes() { … }
const HeapVector<Member<Node>> HTMLSlotElement::AssignedNodesForBinding(
const AssignedNodesOptions* options) { … }
const HeapVector<Member<Element>> HTMLSlotElement::AssignedElements() { … }
const HeapVector<Member<Element>> HTMLSlotElement::AssignedElementsForBinding(
const AssignedNodesOptions* options) { … }
void HTMLSlotElement::assign(HeapVector<Member<V8UnionElementOrText>>& js_nodes,
ExceptionState&) { … }
void HTMLSlotElement::Assign(const HeapVector<Member<Node>>& nodes) { … }
void HTMLSlotElement::Assign(Node* node) { … }
void HTMLSlotElement::AppendAssignedNode(Node& host_child) { … }
void HTMLSlotElement::ClearAssignedNodes() { … }
void HTMLSlotElement::ClearAssignedNodesAndFlatTreeChildren() { … }
void HTMLSlotElement::UpdateFlatTreeNodeDataForAssignedNodes() { … }
void HTMLSlotElement::DetachDisplayLockedAssignedNodesLayoutTreeIfNeeded() { … }
void HTMLSlotElement::RecalcFlatTreeChildren() { … }
void HTMLSlotElement::DispatchSlotChangeEvent() { … }
AtomicString HTMLSlotElement::GetName() const { … }
void HTMLSlotElement::AttachLayoutTreeForSlotChildren(AttachContext& context) { … }
void HTMLSlotElement::DetachLayoutTree(bool performing_reattach) { … }
void HTMLSlotElement::RebuildDistributedChildrenLayoutTrees(
WhitespaceAttacher& whitespace_attacher) { … }
void HTMLSlotElement::AttributeChanged(
const AttributeModificationParams& params) { … }
void HTMLSlotElement::UpdateDirAutoAncestorsForSupportsAssignmentChange() { … }
Node::InsertionNotificationRequest HTMLSlotElement::InsertedInto(
ContainerNode& insertion_point) { … }
void HTMLSlotElement::RemovedFrom(ContainerNode& insertion_point) { … }
void HTMLSlotElement::RecalcStyleForSlotChildren(
const StyleRecalcChange change,
const StyleRecalcContext& style_recalc_context) { … }
void HTMLSlotElement::NotifySlottedNodesOfFlatTreeChangeByDynamicProgramming(
const HeapVector<Member<Node>>& old_slotted,
const HeapVector<Member<Node>>& new_slotted) { … }
void HTMLSlotElement::NotifySlottedNodesOfFlatTreeChange(
const HeapVector<Member<Node>>& old_slotted,
const HeapVector<Member<Node>>& new_slotted) { … }
void HTMLSlotElement::DidSlotChangeAfterRemovedFromShadowTree() { … }
void HTMLSlotElement::DidSlotChangeAfterRenaming() { … }
void HTMLSlotElement::NotifySlottedNodesOfFlatTreeChangeNaive(
const HeapVector<Member<Node>>& old_assigned_nodes,
const HeapVector<Member<Node>>& new_assigned_nodes) { … }
void HTMLSlotElement::SetShadowRootNeedsAssignmentRecalc() { … }
void HTMLSlotElement::DidSlotChange(SlotChangeType slot_change_type) { … }
void HTMLSlotElement::CheckFallbackAfterInsertedIntoShadowTree() { … }
void HTMLSlotElement::CheckFallbackAfterRemovedFromShadowTree() { … }
bool HTMLSlotElement::HasSlotableChild() const { … }
void HTMLSlotElement::EnqueueSlotChangeEvent() { … }
bool HTMLSlotElement::HasAssignedNodesSlow() const { … }
void HTMLSlotElement::ChildrenChanged(const ChildrenChange& change) { … }
bool HTMLSlotElement::CalculateAndAdjustAutoDirectionality() { … }
void HTMLSlotElement::Trace(Visitor* visitor) const { … }
}