Index: content/browser/renderer_host/input/touch_input_browsertest.cc |
diff --git a/content/browser/renderer_host/input/touch_input_browsertest.cc b/content/browser/renderer_host/input/touch_input_browsertest.cc |
index ce20fc2fde40c906b56af87aa2df4b07bba8074a..5d01e7886743da9c1a12b0e19994ec9c0575e905 100644 |
--- a/content/browser/renderer_host/input/touch_input_browsertest.cc |
+++ b/content/browser/renderer_host/input/touch_input_browsertest.cc |
@@ -21,6 +21,10 @@ |
#include "ui/events/event_switches.h" |
#include "ui/events/latency_info.h" |
+#if defined(OS_ANDROID) |
+#include "content/browser/renderer_host/render_widget_host_view_android.h" |
+#endif |
+ |
using blink::WebInputEvent; |
namespace { |
@@ -164,6 +168,17 @@ class TouchInputBrowserTest : public ContentBrowserTest { |
switches::kTouchEventsEnabled); |
} |
+#if defined(OS_ANDROID) |
+ float GetPageScaleFactor() { |
+ WebContentsImpl* web_contents = |
+ static_cast<WebContentsImpl*>(shell()->web_contents()); |
+ RenderWidgetHostImpl* host = |
+ RenderWidgetHostImpl::From(web_contents->GetRenderViewHost()); |
+ return static_cast<RenderWidgetHostViewAndroid*>(host->GetView()) |
+ ->last_page_scale_factor(); |
+ } |
+#endif |
+ |
scoped_refptr<InputEventMessageFilter> filter_; |
}; |
@@ -179,7 +194,12 @@ IN_PROC_BROWSER_TEST_F(TouchInputBrowserTest, MAYBE_TouchNoHandler) { |
// A press on |first| should be acked with NO_CONSUMER_EXISTS since there is |
// no touch-handler on it. |
+#if defined(OS_ANDROID) |
+ float scale = GetPageScaleFactor(); |
+ touch.PressPoint(25 * scale, 25 * scale); |
+#else |
touch.PressPoint(25, 25); |
+#endif |
GetWidgetHost()->ForwardTouchEventWithLatencyInfo(touch, ui::LatencyInfo()); |
filter()->WaitForAck(WebInputEvent::TouchStart); |
@@ -199,7 +219,12 @@ IN_PROC_BROWSER_TEST_F(TouchInputBrowserTest, TouchHandlerNoConsume) { |
// Press on |second| should be acked with NOT_CONSUMED since there is a |
// touch-handler on |second|, but it doesn't consume the event. |
+#if defined(OS_ANDROID) |
+ float scale = GetPageScaleFactor(); |
+ touch.PressPoint(125 * scale, 25 * scale); |
+#else |
touch.PressPoint(125, 25); |
+#endif |
GetWidgetHost()->ForwardTouchEventWithLatencyInfo(touch, ui::LatencyInfo()); |
filter()->WaitForAck(WebInputEvent::TouchStart); |
EXPECT_EQ(INPUT_EVENT_ACK_STATE_NOT_CONSUMED, filter()->last_ack_state()); |
@@ -216,7 +241,12 @@ IN_PROC_BROWSER_TEST_F(TouchInputBrowserTest, TouchHandlerConsume) { |
// Press on |third| should be acked with CONSUMED since the touch-handler on |
// |third| consimes the event. |
+#if defined(OS_ANDROID) |
+ float scale = GetPageScaleFactor(); |
+ touch.PressPoint(25 * scale, 125 * scale); |
+#else |
touch.PressPoint(25, 125); |
+#endif |
GetWidgetHost()->ForwardTouchEventWithLatencyInfo(touch, ui::LatencyInfo()); |
filter()->WaitForAck(WebInputEvent::TouchStart); |
EXPECT_EQ(INPUT_EVENT_ACK_STATE_CONSUMED, filter()->last_ack_state()); |
@@ -238,13 +268,22 @@ IN_PROC_BROWSER_TEST_F(TouchInputBrowserTest, MAYBE_MultiPointTouchPress) { |
// Press on |first|, which sould be acked with NO_CONSUMER_EXISTS. Then press |
// on |third|. That point should be acked with CONSUMED. |
+#if defined(OS_ANDROID) |
+ float scale = GetPageScaleFactor(); |
+ touch.PressPoint(25 * scale, 25 * scale); |
+#else |
touch.PressPoint(25, 25); |
+#endif |
GetWidgetHost()->ForwardTouchEventWithLatencyInfo(touch, ui::LatencyInfo()); |
filter()->WaitForAck(WebInputEvent::TouchStart); |
EXPECT_EQ(INPUT_EVENT_ACK_STATE_NO_CONSUMER_EXISTS, |
filter()->last_ack_state()); |
+#if defined(OS_ANDROID) |
+ touch.PressPoint(25 * scale, 125 * scale); |
+#else |
touch.PressPoint(25, 125); |
+#endif |
GetWidgetHost()->ForwardTouchEventWithLatencyInfo(touch, ui::LatencyInfo()); |
filter()->WaitForAck(WebInputEvent::TouchStart); |
EXPECT_EQ(INPUT_EVENT_ACK_STATE_CONSUMED, filter()->last_ack_state()); |