#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_INPUT_EVENT_HANDLING_UTIL_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_INPUT_EVENT_HANDLING_UTIL_H_
#include "third_party/blink/public/platform/web_input_event_result.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/dom/element.h"
#include "third_party/blink/renderer/core/layout/geometry/physical_offset.h"
#include "third_party/blink/renderer/core/layout/hit_test_result.h"
#include "third_party/blink/renderer/core/page/event_with_hit_test_results.h"
namespace blink {
class ContainerNode;
class EventTarget;
class LocalFrame;
class ScrollableArea;
class PaintLayer;
enum class DispatchEventResult;
namespace event_handling_util {
CORE_EXPORT HitTestResult HitTestResultInFrame(
LocalFrame*,
const HitTestLocation&,
HitTestRequest::HitTestRequestType hit_type = HitTestRequest::kReadOnly |
HitTestRequest::kActive);
WebInputEventResult MergeEventResult(WebInputEventResult result_a,
WebInputEventResult result_b);
WebInputEventResult ToWebInputEventResult(DispatchEventResult);
PaintLayer* LayerForNode(Node*);
ScrollableArea* AssociatedScrollableArea(const PaintLayer*);
bool IsInDocument(EventTarget*);
ContainerNode* ParentForClickEvent(const Node&);
CORE_EXPORT PhysicalOffset
ContentPointFromRootFrame(LocalFrame*, const gfx::PointF& point_in_root_frame);
MouseEventWithHitTestResults PerformMouseEventHitTest(LocalFrame*,
const HitTestRequest&,
const WebMouseEvent&);
LocalFrame* GetTargetSubframe(const MouseEventWithHitTestResults&,
bool* is_remote_frame = nullptr);
LocalFrame* SubframeForTargetNode(Node*, bool* is_remote_frame = nullptr);
bool ShouldDiscardEventTargetingFrame(const WebInputEvent& event,
const LocalFrame& frame);
constexpr base::TimeDelta kDiscardedEventMistakeInterval = …;
class PointerEventTarget { … };
}
}
WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(…)
#endif