#include "third_party/blink/renderer/core/input/gesture_manager.h"
#include "third_party/blink/public/common/input/web_input_event.h"
#include "third_party/blink/public/common/input/web_pointer_event.h"
#include "third_party/blink/public/mojom/frame/user_activation_notification_type.mojom-blink.h"
#include "third_party/blink/public/public_buildflags.h"
#include "third_party/blink/renderer/core/dom/document.h"
#include "third_party/blink/renderer/core/editing/selection_controller.h"
#include "third_party/blink/renderer/core/event_type_names.h"
#include "third_party/blink/renderer/core/events/gesture_event.h"
#include "third_party/blink/renderer/core/events/pointer_event_factory.h"
#include "third_party/blink/renderer/core/fragment_directive/text_fragment_handler.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/local_frame_view.h"
#include "third_party/blink/renderer/core/frame/settings.h"
#include "third_party/blink/renderer/core/frame/visual_viewport.h"
#include "third_party/blink/renderer/core/input/context_menu_allowed_scope.h"
#include "third_party/blink/renderer/core/input/event_handler.h"
#include "third_party/blink/renderer/core/input/event_handling_util.h"
#include "third_party/blink/renderer/core/input/input_device_capabilities.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/paint/paint_layer_scrollable_area.h"
#include "ui/gfx/geometry/point_conversions.h"
#if BUILDFLAG(ENABLE_UNHANDLED_TAP)
#include "third_party/blink/public/mojom/unhandled_tap_notifier/unhandled_tap_notifier.mojom-blink.h"
#include "third_party/blink/public/platform/browser_interface_broker_proxy.h"
#include "third_party/blink/public/web/web_node.h"
#include "third_party/blink/renderer/core/editing/frame_selection.h"
#include "third_party/blink/renderer/core/editing/selection_template.h"
#include "third_party/blink/renderer/core/editing/visible_selection.h"
#include "third_party/blink/renderer/core/frame/local_frame_client.h"
#include "third_party/blink/renderer/core/style/computed_style.h"
#endif
namespace blink {
namespace {
const int kTouchDragSlop = …;
bool TouchDragAndContextMenuEnabled(const LocalFrame* frame) { … }
}
GestureManager::GestureManager(LocalFrame& frame,
ScrollManager& scroll_manager,
MouseEventManager& mouse_event_manager,
PointerEventManager& pointer_event_manager,
SelectionController& selection_controller)
: … { … }
void GestureManager::Clear() { … }
void GestureManager::ResetLongTapContextMenuStates() { … }
void GestureManager::Trace(Visitor* visitor) const { … }
HitTestRequest::HitTestRequestType GestureManager::GetHitTypeForGestureType(
WebInputEvent::Type type) { … }
WebInputEventResult GestureManager::HandleGestureEventInFrame(
const GestureEventWithHitTestResults& targeted_event) { … }
bool GestureManager::GestureContextMenuDeferred() const { … }
WebInputEventResult GestureManager::HandleGestureTapDown(
const GestureEventWithHitTestResults& targeted_event) { … }
WebInputEventResult GestureManager::HandleGestureTap(
const GestureEventWithHitTestResults& targeted_event) { … }
WebInputEventResult GestureManager::HandleGestureShortPress(
const GestureEventWithHitTestResults& targeted_event) { … }
WebInputEventResult GestureManager::HandleGestureLongPress(
const GestureEventWithHitTestResults& targeted_event) { … }
WebInputEventResult GestureManager::HandleGestureLongTap(
const GestureEventWithHitTestResults& targeted_event) { … }
WebInputEventResult GestureManager::HandleGestureTwoFingerTap(
const GestureEventWithHitTestResults& targeted_event) { … }
void GestureManager::SendContextMenuEventTouchDragEnd(
const WebMouseEvent& mouse_event) { … }
WebInputEventResult GestureManager::SendContextMenuEventForGesture(
const GestureEventWithHitTestResults& targeted_event) { … }
WebInputEventResult GestureManager::HandleGestureShowPress() { … }
void GestureManager::ShowUnhandledTapUIIfNeeded(
bool dom_tree_changed,
bool style_changed,
Node* tapped_node,
const gfx::Point& tapped_position_in_viewport) { … }
PointerId GestureManager::GetPointerIdFromWebGestureEvent(
const WebGestureEvent& gesture_event) const { … }
}