#include "components/input/passthrough_touch_event_queue.h"
#include <memory>
#include <string>
#include <utility>
#include "base/auto_reset.h"
#include "base/metrics/field_trial_params.h"
#include "base/trace_event/trace_event.h"
#include "base/trace_event/typed_macros.h"
#include "components/input/touch_timeout_handler.h"
#include "components/input/web_touch_event_traits.h"
#include "ui/events/base_event_utils.h"
#include "ui/gfx/geometry/point_f.h"
WebInputEvent;
WebTouchEvent;
WebTouchPoint;
LatencyInfo;
namespace input {
namespace {
bool HasPointChanged(const WebTouchPoint& point_1,
const WebTouchPoint& point_2) { … }
}
PassthroughTouchEventQueue::Config::Config() = default;
PassthroughTouchEventQueue::Config::~Config() = default;
PassthroughTouchEventQueue::Config::Config(
const PassthroughTouchEventQueue::Config& other) = default;
const base::FeatureParam<std::string>
PassthroughTouchEventQueue::kSkipTouchEventFilterType{ … };
PassthroughTouchEventQueue::TouchEventWithLatencyInfoAndAckState::
TouchEventWithLatencyInfoAndAckState(
const TouchEventWithLatencyInfo& event)
: … { … }
PassthroughTouchEventQueue::PassthroughTouchEventQueue(
PassthroughTouchEventQueueClient* client,
const Config& config)
: … { … }
PassthroughTouchEventQueue::~PassthroughTouchEventQueue() { … }
void PassthroughTouchEventQueue::SendTouchCancelEventForTouchEvent(
const TouchEventWithLatencyInfo& event_to_cancel) { … }
void PassthroughTouchEventQueue::QueueEvent(
const TouchEventWithLatencyInfo& event) { … }
void PassthroughTouchEventQueue::PrependTouchScrollNotification() { … }
void PassthroughTouchEventQueue::ProcessTouchAck(
blink::mojom::InputEventResultSource ack_source,
blink::mojom::InputEventResultState ack_result,
const LatencyInfo& latency_info,
const uint32_t unique_touch_event_id,
bool should_stop_timeout_monitor) { … }
void PassthroughTouchEventQueue::OnGestureEventAck(
const GestureEventWithLatencyInfo& event,
blink::mojom::InputEventResultState ack_result) { … }
void PassthroughTouchEventQueue::OnHasTouchEventHandlers(bool has_handlers) { … }
bool PassthroughTouchEventQueue::IsPendingAckTouchStart() const { … }
void PassthroughTouchEventQueue::SetAckTimeoutEnabled(bool enabled) { … }
void PassthroughTouchEventQueue::SetIsMobileOptimizedSite(
bool mobile_optimized_site) { … }
bool PassthroughTouchEventQueue::IsAckTimeoutEnabled() const { … }
bool PassthroughTouchEventQueue::Empty() const { … }
void PassthroughTouchEventQueue::FlushQueue() { … }
void PassthroughTouchEventQueue::StopTimeoutMonitor() { … }
void PassthroughTouchEventQueue::AckCompletedEvents() { … }
void PassthroughTouchEventQueue::AckTouchEventToClient(
const TouchEventWithLatencyInfo& acked_event,
blink::mojom::InputEventResultSource ack_source,
blink::mojom::InputEventResultState ack_result) { … }
void PassthroughTouchEventQueue::SendTouchEventImmediately(
TouchEventWithLatencyInfo* touch,
bool wait_for_ack) { … }
PassthroughTouchEventQueue::PreFilterResult
PassthroughTouchEventQueue::FilterBeforeForwarding(const WebTouchEvent& event) { … }
bool PassthroughTouchEventQueue::ShouldFilterForEvent(
const blink::WebTouchEvent& event) { … }
PassthroughTouchEventQueue::PreFilterResult
PassthroughTouchEventQueue::FilterBeforeForwardingImpl(
const WebTouchEvent& event) { … }
void PassthroughTouchEventQueue::UpdateTouchConsumerStates(
const WebTouchEvent& event,
blink::mojom::InputEventResultState ack_result) { … }
size_t PassthroughTouchEventQueue::SizeForTesting() const { … }
bool PassthroughTouchEventQueue::IsTimeoutRunningForTesting() const { … }
}