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 69c95ee852b905a1102c0540904f493ce93b765a..f744457f67d966fb560c27f5152453f8074d81f3 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 |
@@ -433,6 +433,39 @@ class MockWindowObserver : public aura::WindowObserver { |
MOCK_METHOD2(OnDelegatedFrameDamage, void(aura::Window*, const gfx::Rect&)); |
}; |
+class MockRenderWidgetHostImpl : public RenderWidgetHostImpl { |
+ public: |
+ MockRenderWidgetHostImpl(RenderWidgetHostDelegate* delegate, |
+ RenderProcessHost* process, |
+ int32_t routing_id) |
+ : RenderWidgetHostImpl(delegate, process, routing_id, false) { |
+ set_renderer_initialized(true); |
+ lastWheelOrTouchEventLatencyInfo = ui::LatencyInfo(); |
+ } |
+ |
+ // Extracts |latency_info| for wheel event, and stores it in |
+ // |lastWheelOrTouchEventLatencyInfo|. |
+ void ForwardWheelEventWithLatencyInfo( |
+ const blink::WebMouseWheelEvent& wheel_event, |
+ const ui::LatencyInfo& ui_latency) override { |
+ RenderWidgetHostImpl::ForwardWheelEventWithLatencyInfo(wheel_event, |
+ ui_latency); |
+ lastWheelOrTouchEventLatencyInfo = ui::LatencyInfo(ui_latency); |
+ } |
+ |
+ // Extracts |latency_info| for touch event, and stores it in |
+ // |lastWheelOrTouchEventLatencyInfo|. |
+ void ForwardTouchEventWithLatencyInfo( |
+ const blink::WebTouchEvent& touch_event, |
+ const ui::LatencyInfo& ui_latency) override { |
+ RenderWidgetHostImpl::ForwardTouchEventWithLatencyInfo(touch_event, |
+ ui_latency); |
+ lastWheelOrTouchEventLatencyInfo = ui::LatencyInfo(ui_latency); |
+ } |
+ |
+ ui::LatencyInfo lastWheelOrTouchEventLatencyInfo; |
+}; |
+ |
const WebInputEvent* GetInputEventFromMessage(const IPC::Message& message) { |
base::PickleIterator iter(message); |
const char* data; |
@@ -480,8 +513,8 @@ class RenderWidgetHostViewAuraTest : public testing::Test { |
routing_id = process_host_->GetNextRoutingID(); |
delegates_.push_back(base::WrapUnique(new MockRenderWidgetHostDelegate)); |
- widget_host_ = new RenderWidgetHostImpl(delegates_.back().get(), |
- process_host_, routing_id, false); |
+ widget_host_ = new MockRenderWidgetHostImpl(delegates_.back().get(), |
+ process_host_, routing_id); |
delegates_.back()->set_widget_host(widget_host_); |
widget_host_->Init(); |
view_ = new FakeRenderWidgetHostViewAura(widget_host_, is_guest_view_hack_); |
@@ -641,7 +674,7 @@ class RenderWidgetHostViewAuraTest : public testing::Test { |
// Tests should set these to nullptr if they've already triggered their |
// destruction. |
- RenderWidgetHostImpl* widget_host_; |
+ MockRenderWidgetHostImpl* widget_host_; |
FakeRenderWidgetHostViewAura* view_; |
IPC::TestSink* sink_; |
@@ -2513,6 +2546,28 @@ TEST_F(RenderWidgetHostViewAuraTest, SoftwareDPIChange) { |
EXPECT_NE(surface_id, view_->surface_id()); |
} |
+TEST_F(RenderWidgetHostViewAuraTest, SourceEventTypeExistsInLatencyInfo) { |
+ // WHEEL source exists. |
+ ui::ScrollEvent scroll(ui::ET_SCROLL, gfx::Point(2, 2), ui::EventTimeForNow(), |
+ 0, 0, 0, 0, 0, 2); |
+ view_->OnScrollEvent(&scroll); |
+ EXPECT_EQ(widget_host_->lastWheelOrTouchEventLatencyInfo.source_event_type(), |
+ ui::SourceEventType::WHEEL); |
+ |
+ // TOUCH source exists. |
+ ui::TouchEvent press(ui::ET_TOUCH_PRESSED, gfx::Point(30, 30), 0, |
+ ui::EventTimeForNow()); |
+ ui::TouchEvent move(ui::ET_TOUCH_MOVED, gfx::Point(20, 20), 0, |
+ ui::EventTimeForNow()); |
+ ui::TouchEvent release(ui::ET_TOUCH_RELEASED, gfx::Point(20, 20), 0, |
+ ui::EventTimeForNow()); |
+ view_->OnTouchEvent(&press); |
+ view_->OnTouchEvent(&move); |
+ EXPECT_EQ(widget_host_->lastWheelOrTouchEventLatencyInfo.source_event_type(), |
+ ui::SourceEventType::TOUCH); |
+ view_->OnTouchEvent(&release); |
+} |
+ |
class RenderWidgetHostViewAuraCopyRequestTest |
: public RenderWidgetHostViewAuraShutdownTest { |
public: |