#include "third_party/blink/renderer/core/dom/mutation_observer.h"
#include <algorithm>
#include "third_party/blink/public/mojom/frame/lifecycle.mojom-blink.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_mutation_callback.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_mutation_observer_init.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/dom/mutation_observer_registration.h"
#include "third_party/blink/renderer/core/dom/mutation_record.h"
#include "third_party/blink/renderer/core/dom/node.h"
#include "third_party/blink/renderer/core/execution_context/agent.h"
#include "third_party/blink/renderer/core/execution_context/execution_context.h"
#include "third_party/blink/renderer/core/html/html_slot_element.h"
#include "third_party/blink/renderer/core/probe/core_probes.h"
#include "third_party/blink/renderer/platform/bindings/exception_state.h"
#include "third_party/blink/renderer/platform/scheduler/public/event_loop.h"
namespace blink {
SlotChangeList;
static unsigned g_observer_priority = …;
struct MutationObserver::ObserverLessThan { … };
class MutationObserverAgentData
: public GarbageCollected<MutationObserverAgentData>,
public Supplement<Agent> { … };
class MutationObserver::V8DelegateImpl final
: public MutationObserver::Delegate,
public ExecutionContextClient { … };
MutationObserver* MutationObserver::Create(Delegate* delegate) { … }
MutationObserver* MutationObserver::Create(ScriptState* script_state,
V8MutationCallback* callback) { … }
MutationObserver::MutationObserver(ExecutionContext* execution_context,
Delegate* delegate)
: … { … }
MutationObserver::~MutationObserver() = default;
void MutationObserver::observe(Node* node,
const MutationObserverInit* observer_init,
ExceptionState& exception_state) { … }
MutationRecordVector MutationObserver::takeRecords() { … }
void MutationObserver::disconnect() { … }
void MutationObserver::ObservationStarted(
MutationObserverRegistration* registration) { … }
void MutationObserver::ObservationEnded(
MutationObserverRegistration* registration) { … }
void MutationObserver::EnqueueSlotChange(HTMLSlotElement& slot) { … }
void MutationObserver::CleanSlotChangeList(Document& document) { … }
static void ActivateObserver(MutationObserver* observer) { … }
void MutationObserver::EnqueueMutationRecord(MutationRecord* mutation) { … }
void MutationObserver::SetHasTransientRegistration() { … }
HeapHashSet<Member<Node>> MutationObserver::GetObservedNodes() const { … }
void MutationObserver::ContextLifecycleStateChanged(
mojom::FrameLifecycleState state) { … }
void MutationObserver::ContextDestroyed() { … }
void MutationObserver::CancelInspectorAsyncTasks() { … }
void MutationObserver::Deliver() { … }
void MutationObserver::Trace(Visitor* visitor) const { … }
}