#include "third_party/blink/renderer/core/dom/events/event_dispatcher.h"
#include <optional>
#include "base/feature_list.h"
#include "base/memory/scoped_refptr.h"
#include "build/build_config.h"
#include "third_party/blink/public/common/features.h"
#include "third_party/blink/public/common/input/web_keyboard_event.h"
#include "third_party/blink/public/web/web_local_frame_client.h"
#include "third_party/blink/renderer/core/accessibility/ax_object_cache.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/dom/events/event_dispatch_forbidden_scope.h"
#include "third_party/blink/renderer/core/dom/events/event_dispatch_result.h"
#include "third_party/blink/renderer/core/dom/events/event_path.h"
#include "third_party/blink/renderer/core/dom/events/scoped_event_queue.h"
#include "third_party/blink/renderer/core/dom/events/simulated_click_options.h"
#include "third_party/blink/renderer/core/dom/events/window_event_context.h"
#include "third_party/blink/renderer/core/dom/node.h"
#include "third_party/blink/renderer/core/editing/editor.h"
#include "third_party/blink/renderer/core/event_type_names.h"
#include "third_party/blink/renderer/core/events/keyboard_event.h"
#include "third_party/blink/renderer/core/events/mouse_event.h"
#include "third_party/blink/renderer/core/events/simulated_event_util.h"
#include "third_party/blink/renderer/core/events/text_event.h"
#include "third_party/blink/renderer/core/execution_context/agent.h"
#include "third_party/blink/renderer/core/frame/ad_tracker.h"
#include "third_party/blink/renderer/core/frame/local_dom_window.h"
#include "third_party/blink/renderer/core/frame/local_frame.h"
#include "third_party/blink/renderer/core/frame/settings.h"
#include "third_party/blink/renderer/core/html/forms/html_input_element.h"
#include "third_party/blink/renderer/core/html/forms/html_select_element.h"
#include "third_party/blink/renderer/core/html/html_element.h"
#include "third_party/blink/renderer/core/inspector/inspector_trace_events.h"
#include "third_party/blink/renderer/core/keywords.h"
#include "third_party/blink/renderer/core/layout/layout_shift_tracker.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/page/spatial_navigation_controller.h"
#include "third_party/blink/renderer/core/timing/event_timing.h"
#include "third_party/blink/renderer/core/timing/soft_navigation_heuristics.h"
#include "third_party/blink/renderer/platform/instrumentation/tracing/trace_event.h"
#include "third_party/blink/renderer/platform/instrumentation/use_counter.h"
#include "third_party/blink/renderer/platform/keyboard_codes.h"
#include "ui/events/keycodes/dom/keycode_converter.h"
namespace blink {
DispatchEventResult EventDispatcher::DispatchEvent(Node& node, Event& event) { … }
EventDispatcher::EventDispatcher(Node& node, Event& event)
: … { … }
void EventDispatcher::DispatchScopedEvent(Node& node, Event& event) { … }
void EventDispatcher::DispatchSimulatedClick(
Node& node,
const Event* underlying_event,
SimulatedClickCreationScope creation_scope) { … }
void EventDispatcher::DispatchSimulatedEnterEvent(
HTMLInputElement& input_element) { … }
DispatchEventResult EventDispatcher::Dispatch() { … }
inline EventDispatchContinuation EventDispatcher::DispatchEventPreProcess(
Node* activation_target,
EventDispatchHandlingState*& pre_dispatch_event_handler_result) { … }
inline EventDispatchContinuation EventDispatcher::DispatchEventAtCapturing() { … }
inline void EventDispatcher::DispatchEventAtBubbling() { … }
inline void EventDispatcher::DispatchEventPostProcess(
Node* activation_target,
EventDispatchHandlingState* pre_dispatch_event_handler_result) { … }
}