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

Unified Diff: content/browser/renderer_host/render_widget_host_view_aura.cc

Issue 510793003: Remove ui::TouchEvent -> blink::WebTouchEvent conversion methods. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 4 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/render_widget_host_view_aura.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index 49ee8e48f09e47f0b9305899e12443c993a9e26f..095d30d222c1e9380608dc6f18792c57c0af7fd9 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -27,6 +27,7 @@
#include "content/browser/renderer_host/compositor_resize_lock_aura.h"
#include "content/browser/renderer_host/dip_util.h"
#include "content/browser/renderer_host/input/synthetic_gesture_target_aura.h"
+#include "content/browser/renderer_host/input/web_input_event_util.h"
#include "content/browser/renderer_host/overscroll_controller.h"
#include "content/browser/renderer_host/render_view_host_delegate.h"
#include "content/browser/renderer_host/render_view_host_impl.h"
@@ -229,22 +230,6 @@ BOOL CALLBACK DismissOwnedPopups(HWND window, LPARAM arg) {
}
#endif
-void UpdateWebTouchEventAfterDispatch(blink::WebTouchEvent* event,
- blink::WebTouchPoint* point) {
- if (point->state != blink::WebTouchPoint::StateReleased &&
- point->state != blink::WebTouchPoint::StateCancelled)
- return;
-
- const unsigned new_length = event->touchesLength - 1;
- // Work around a gcc 4.9 bug. crbug.com/392872
- if (new_length >= event->touchesLengthCap)
- return;
-
- for (unsigned i = point - event->touches; i < new_length; ++i)
- event->touches[i] = event->touches[i + 1];
- event->touchesLength = new_length;
-}
-
bool CanRendererHandleEvent(const ui::MouseEvent* event) {
if (event->type() == ui::ET_MOUSE_CAPTURE_CHANGED)
return false;
@@ -1922,22 +1907,19 @@ void RenderWidgetHostViewAura::OnTouchEvent(ui::TouchEvent* event) {
return;
// Update the touch event first.
- blink::WebTouchPoint* point = UpdateWebTouchEventFromUIEvent(*event,
- &touch_event_);
-
- // Forward the touch event only if a touch point was updated, and there's a
- // touch-event handler in the page, and no other touch-event is in the queue.
- // It is important to always consume the event if there is a touch-event
- // handler in the page, or some touch-event is already in the queue, even if
- // no point has been updated, to make sure that this event does not get
- // processed by the gesture recognizer before the events in the queue.
- if (host_->ShouldForwardTouchEvent())
+ pointer_state_.OnTouch(*event);
+ touch_event_ = CreateWebTouchEventFromMotionEvent(pointer_state_);
+ pointer_state_.CleanupRemovedTouchPoints(*event);
+
+ // Forward the touch event only if there's a touch-event handler in the page,
+ // and no other touch-event is in the queue. It is important to always
+ // consume the event if there is a touch-event handler in the page, or some
+ // touch-event is already in the queue, even if no point has been updated, to
+ // make sure that this event does not get processed by the gesture recognizer
+ // before the events in the queue.
+ if (host_->ShouldForwardTouchEvent()) {
event->StopPropagation();
-
- if (point) {
- if (host_->ShouldForwardTouchEvent())
- host_->ForwardTouchEventWithLatencyInfo(touch_event_, *event->latency());
- UpdateWebTouchEventAfterDispatch(&touch_event_, point);
+ host_->ForwardTouchEventWithLatencyInfo(touch_event_, *event->latency());
}
}

Powered by Google App Engine
This is Rietveld 408576698