Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4)

Unified Diff: content/browser/renderer_host/input/gesture_event_queue.cc

Issue 260923003: Revert of Consolidate all touch/gesture related constants in content (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/renderer_host/input/gesture_event_queue.cc
diff --git a/content/browser/renderer_host/input/gesture_event_queue.cc b/content/browser/renderer_host/input/gesture_event_queue.cc
index 581301efa89a7d263c45ec04f1971923bcac611e..2fb46b6fa0eb88ea13efb88688679f7ae90197b3 100644
--- a/content/browser/renderer_host/input/gesture_event_queue.cc
+++ b/content/browser/renderer_host/input/gesture_event_queue.cc
@@ -4,6 +4,7 @@
#include "content/browser/renderer_host/input/gesture_event_queue.h"
+#include "base/command_line.h"
#include "base/debug/trace_event.h"
#include "base/strings/string_number_conversions.h"
#include "content/browser/renderer_host/input/input_router.h"
@@ -15,25 +16,34 @@
using blink::WebInputEvent;
namespace content {
-
-GestureEventQueue::Config::Config() {
-}
+namespace {
+
+// Default debouncing interval duration: if a scroll is in progress, non-scroll
+// events during this interval are deferred to either its end or discarded on
+// receipt of another GestureScrollUpdate.
+static const int kDebouncingIntervalTimeMs = 30;
+
+} // namespace
GestureEventQueue::GestureEventQueue(
GestureEventQueueClient* client,
- TouchpadTapSuppressionControllerClient* touchpad_client,
- const Config& config)
- : client_(client),
- fling_in_progress_(false),
- scrolling_in_progress_(false),
- ignore_next_ack_(false),
- touchpad_tap_suppression_controller_(
- touchpad_client, config.touchpad_tap_suppression_config),
- touchscreen_tap_suppression_controller_(
- this, config.touchscreen_tap_suppression_config),
- debounce_interval_(config.debounce_interval) {
+ TouchpadTapSuppressionControllerClient* touchpad_client)
+ : client_(client),
+ fling_in_progress_(false),
+ scrolling_in_progress_(false),
+ ignore_next_ack_(false),
+ touchpad_tap_suppression_controller_(
+ new TouchpadTapSuppressionController(touchpad_client)),
+ touchscreen_tap_suppression_controller_(
+ new TouchscreenTapSuppressionController(this)),
+ debounce_interval_time_ms_(kDebouncingIntervalTimeMs),
+ debounce_enabled_(true) {
DCHECK(client);
- DCHECK(touchpad_client);
+ DCHECK(touchpad_tap_suppression_controller_);
+ if (CommandLine::ForCurrentProcess()->HasSwitch(
+ switches::kDisableGestureDebounce)) {
+ debounce_enabled_ = false;
+ }
}
GestureEventQueue::~GestureEventQueue() { }
@@ -56,14 +66,14 @@
bool GestureEventQueue::ShouldForwardForBounceReduction(
const GestureEventWithLatencyInfo& gesture_event) {
- if (debounce_interval_ <= base::TimeDelta())
+ if (!debounce_enabled_)
return true;
switch (gesture_event.event.type) {
case WebInputEvent::GestureScrollUpdate:
if (!scrolling_in_progress_) {
debounce_deferring_timer_.Start(
FROM_HERE,
- debounce_interval_,
+ base::TimeDelta::FromMilliseconds(debounce_interval_time_ms_),
this,
&GestureEventQueue::SendScrollEndingEventsNow);
} else {
@@ -117,9 +127,9 @@
switch (gesture_event.event.type) {
case WebInputEvent::GestureFlingCancel:
if (gesture_event.event.sourceDevice == WebGestureEvent::Touchscreen)
- touchscreen_tap_suppression_controller_.GestureFlingCancel();
+ touchscreen_tap_suppression_controller_->GestureFlingCancel();
else
- touchpad_tap_suppression_controller_.GestureFlingCancel();
+ touchpad_tap_suppression_controller_->GestureFlingCancel();
return true;
case WebInputEvent::GestureTapDown:
case WebInputEvent::GestureShowPress:
@@ -128,8 +138,8 @@
case WebInputEvent::GestureTap:
case WebInputEvent::GestureDoubleTap:
if (gesture_event.event.sourceDevice == WebGestureEvent::Touchscreen) {
- return !touchscreen_tap_suppression_controller_.FilterTapEvent(
- gesture_event);
+ return !touchscreen_tap_suppression_controller_->
+ FilterTapEvent(gesture_event);
}
return true;
default:
@@ -190,9 +200,9 @@
const bool processed = (INPUT_EVENT_ACK_STATE_CONSUMED == ack_result);
if (type == WebInputEvent::GestureFlingCancel) {
if (event_with_latency.event.sourceDevice == WebGestureEvent::Touchscreen)
- touchscreen_tap_suppression_controller_.GestureFlingCancelAck(processed);
+ touchscreen_tap_suppression_controller_->GestureFlingCancelAck(processed);
else
- touchpad_tap_suppression_controller_.GestureFlingCancelAck(processed);
+ touchpad_tap_suppression_controller_->GestureFlingCancelAck(processed);
}
DCHECK_LT(event_index, coalesced_gesture_events_.size());
coalesced_gesture_events_.erase(coalesced_gesture_events_.begin() +
@@ -228,7 +238,7 @@
TouchpadTapSuppressionController*
GestureEventQueue::GetTouchpadTapSuppressionController() {
- return &touchpad_tap_suppression_controller_;
+ return touchpad_tap_suppression_controller_.get();
}
bool GestureEventQueue::ExpectingGestureAck() const {

Powered by Google App Engine
This is Rietveld 408576698