#ifdef UNSAFE_BUFFERS_BUILD
#pragma allow_unsafe_buffers
#endif
#include "third_party/blink/renderer/core/frame/event_handler_registry.h"
#include "third_party/blink/renderer/bindings/core/v8/v8_event_listener_options.h"
#include "third_party/blink/renderer/core/dom/events/add_event_listener_options_resolved.h"
#include "third_party/blink/renderer/core/events/event_util.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/html/html_frame_owner_element.h"
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/core/layout/layout_view.h"
#include "third_party/blink/renderer/core/page/chrome_client.h"
#include "third_party/blink/renderer/core/page/page.h"
#include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h"
#include "third_party/blink/renderer/platform/heap/thread_state_scopes.h"
#include "third_party/blink/renderer/platform/heap/visitor.h"
namespace blink {
namespace {
cc::EventListenerProperties GetEventListenerProperties(bool has_blocking,
bool has_passive) { … }
LocalFrame* GetLocalFrameForTarget(EventTarget* target) { … }
}
EventHandlerRegistry::EventHandlerRegistry(LocalFrame& frame) : … { … }
EventHandlerRegistry::~EventHandlerRegistry() { … }
bool EventHandlerRegistry::EventTypeToClass(
const AtomicString& event_type,
const AddEventListenerOptions* options,
EventHandlerClass* result) { … }
const EventTargetSet* EventHandlerRegistry::EventHandlerTargets(
EventHandlerClass handler_class) const { … }
bool EventHandlerRegistry::HasEventHandlers(
EventHandlerClass handler_class) const { … }
void EventHandlerRegistry::UpdateEventHandlerTargets(
ChangeOperation op,
EventHandlerClass handler_class,
EventTarget* target) { … }
bool EventHandlerRegistry::UpdateEventHandlerInternal(
ChangeOperation op,
EventHandlerClass handler_class,
EventTarget* target) { … }
void EventHandlerRegistry::UpdateEventHandlerOfType(
ChangeOperation op,
const AtomicString& event_type,
const AddEventListenerOptions* options,
EventTarget* target) { … }
void EventHandlerRegistry::DidAddEventHandler(
EventTarget& target,
const AtomicString& event_type,
const AddEventListenerOptions* options) { … }
void EventHandlerRegistry::DidRemoveEventHandler(
EventTarget& target,
const AtomicString& event_type,
const AddEventListenerOptions* options) { … }
void EventHandlerRegistry::DidAddEventHandler(EventTarget& target,
EventHandlerClass handler_class) { … }
void EventHandlerRegistry::DidRemoveEventHandler(
EventTarget& target,
EventHandlerClass handler_class) { … }
void EventHandlerRegistry::DidMoveIntoPage(EventTarget& target) { … }
void EventHandlerRegistry::DidMoveOutOfPage(EventTarget& target) { … }
void EventHandlerRegistry::DidRemoveAllEventHandlers(EventTarget& target) { … }
void EventHandlerRegistry::NotifyHandlersChanged(
EventTarget* target,
EventHandlerClass handler_class,
bool has_active_handlers) { … }
void EventHandlerRegistry::Trace(Visitor* visitor) const { … }
void EventHandlerRegistry::ProcessCustomWeakness(const LivenessBroker& info) { … }
void EventHandlerRegistry::DocumentDetached(Document& document) { … }
void EventHandlerRegistry::CheckConsistency(
EventHandlerClass handler_class) const { … }
Page* EventHandlerRegistry::GetPage() const { … }
}