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

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

Issue 503883004: Don't pass touches to gesture recognizer for async acks. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Remove code churn. Created 5 years, 10 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_unittest.cc
diff --git a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
index d643e4f2f3b3decf0970a05973cacbc8c1734d2c..1c8d48a71743bf6e2b82fb461b3d2fbb942cafd3 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc
@@ -43,6 +43,7 @@
#include "ui/aura/env.h"
#include "ui/aura/layout_manager.h"
#include "ui/aura/test/aura_test_helper.h"
+#include "ui/aura/test/aura_test_utils.h"
#include "ui/aura/test/test_cursor_client.h"
#include "ui/aura/test/test_screen.h"
#include "ui/aura/test/test_window_delegate.h"
@@ -208,6 +209,26 @@ class FakeFrameSubscriber : public RenderWidgetHostViewFrameSubscriber {
base::Callback<void(bool)> callback_;
};
+class FakeWindowEventDispatcher : public aura::WindowEventDispatcher {
+ public:
+ FakeWindowEventDispatcher(aura::WindowTreeHost* host)
+ : WindowEventDispatcher(host),
+ processed_touch_event_count_(0) {}
+
+ void ProcessedTouchEvent(aura::Window* window,
+ ui::EventResult result) override {
+ WindowEventDispatcher::ProcessedTouchEvent(window, result);
+ processed_touch_event_count_++;
+ }
+
+ size_t processed_touch_event_count() {
+ return processed_touch_event_count_;
+ }
+
+ private:
+ size_t processed_touch_event_count_;
+};
+
class FakeRenderWidgetHostViewAura : public RenderWidgetHostViewAura {
public:
FakeRenderWidgetHostViewAura(RenderWidgetHost* widget,
@@ -215,6 +236,12 @@ class FakeRenderWidgetHostViewAura : public RenderWidgetHostViewAura {
: RenderWidgetHostViewAura(widget, is_guest_view_hack),
has_resize_lock_(false) {}
+ void UseFakeDispatcher() {
+ dispatcher_ = new FakeWindowEventDispatcher(window()->GetHost());
+ scoped_ptr<aura::WindowEventDispatcher> dispatcher(dispatcher_);
+ aura::test::SetHostDispatcher(window()->GetHost(), dispatcher.Pass());
+ }
+
~FakeRenderWidgetHostViewAura() override {}
scoped_ptr<ResizeLock> DelegatedFrameHostCreateResizeLock(
@@ -285,6 +312,7 @@ class FakeRenderWidgetHostViewAura : public RenderWidgetHostViewAura {
scoped_ptr<cc::CopyOutputRequest> last_copy_request_;
// null if there are 0 active touch points.
scoped_ptr<blink::WebTouchEvent> touch_event_;
+ FakeWindowEventDispatcher* dispatcher_;
};
// A layout manager that always resizes a child to the root window size.
@@ -3165,4 +3193,27 @@ TEST_F(RenderWidgetHostViewAuraTest, SetCanScrollForWebMouseWheelEvent) {
EXPECT_TRUE(wheel_event->canScroll);
}
+// Ensures that the mapping from ui::TouchEvent to blink::WebTouchEvent doesn't
+// lose track of the number of acks required.
+TEST_F(RenderWidgetHostViewAuraTest, CorrectNumberOfAcksAreDispatched) {
+ view_->InitAsFullscreen(parent_view_);
+ view_->Show();
+ view_->UseFakeDispatcher();
+
+ ui::TouchEvent press1(
+ ui::ET_TOUCH_PRESSED, gfx::Point(30, 30), 0, ui::EventTimeForNow());
+
+ view_->OnTouchEvent(&press1);
+ SendInputEventACK(blink::WebInputEvent::TouchStart,
+ INPUT_EVENT_ACK_STATE_CONSUMED);
+
+ ui::TouchEvent press2(
+ ui::ET_TOUCH_PRESSED, gfx::Point(20, 20), 1, ui::EventTimeForNow());
+ view_->OnTouchEvent(&press2);
+ SendInputEventACK(blink::WebInputEvent::TouchStart,
+ INPUT_EVENT_ACK_STATE_CONSUMED);
+
+ EXPECT_EQ(2U, view_->dispatcher_->processed_touch_event_count());
+}
+
} // namespace content
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_aura.cc ('k') | ui/aura/gestures/gesture_recognizer_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698