Chromium Code Reviews| Index: content/browser/renderer_host/render_widget_host_impl.cc |
| diff --git a/content/browser/renderer_host/render_widget_host_impl.cc b/content/browser/renderer_host/render_widget_host_impl.cc |
| index 9e606f4d5ca2f56a1508a717aa31c1493a75988e..4a898c3de8ff0ed708ffbb6081b9daca6539a778 100644 |
| --- a/content/browser/renderer_host/render_widget_host_impl.cc |
| +++ b/content/browser/renderer_host/render_widget_host_impl.cc |
| @@ -31,6 +31,8 @@ |
| #include "content/browser/renderer_host/backing_store_manager.h" |
| #include "content/browser/renderer_host/dip_util.h" |
| #include "content/browser/renderer_host/input/immediate_input_router.h" |
| +#include "content/browser/renderer_host/input/synthetic_gesture.h" |
| +#include "content/browser/renderer_host/input/synthetic_gesture_target.h" |
| #include "content/browser/renderer_host/overscroll_controller.h" |
| #include "content/browser/renderer_host/render_process_host_impl.h" |
| #include "content/browser/renderer_host/render_view_host_impl.h" |
| @@ -384,11 +386,6 @@ void RenderWidgetHostImpl::SendScreenRects() { |
| waiting_for_screen_rects_ack_ = true; |
| } |
| -base::TimeDelta |
| - RenderWidgetHostImpl::GetSyntheticGestureMessageInterval() const { |
| - return synthetic_gesture_controller_.GetSyntheticGestureMessageInterval(); |
| -} |
| - |
| void RenderWidgetHostImpl::SetOverscrollControllerEnabled(bool enabled) { |
| if (!enabled) |
| overscroll_controller_.reset(); |
| @@ -402,6 +399,8 @@ void RenderWidgetHostImpl::SuppressNextCharEvents() { |
| void RenderWidgetHostImpl::FlushInput() { |
| input_router_->Flush(); |
| + if (synthetic_gesture_controller_) |
|
jdduke (slow)
2013/11/18 16:32:55
So, I don't have a strong opinion whether the cont
|
| + synthetic_gesture_controller_->Flush(base::TimeTicks::Now()); |
| } |
| void RenderWidgetHostImpl::SetNeedsFlush() { |
| @@ -448,6 +447,8 @@ bool RenderWidgetHostImpl::OnMessageReceived(const IPC::Message &msg) { |
| bool handled = true; |
| bool msg_is_ok = true; |
| IPC_BEGIN_MESSAGE_MAP_EX(RenderWidgetHostImpl, msg, msg_is_ok) |
| + IPC_MESSAGE_HANDLER(InputHostMsg_QueueSyntheticGesture, |
| + OnQueueSyntheticGesture) |
| IPC_MESSAGE_HANDLER(ViewHostMsg_RenderViewReady, OnRenderViewReady) |
| IPC_MESSAGE_HANDLER(ViewHostMsg_RenderProcessGone, OnRenderProcessGone) |
| IPC_MESSAGE_HANDLER(ViewHostMsg_Close, OnClose) |
| @@ -465,8 +466,6 @@ bool RenderWidgetHostImpl::OnMessageReceived(const IPC::Message &msg) { |
| IPC_MESSAGE_HANDLER(ViewHostMsg_DidOverscroll, OnOverscrolled) |
| IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateRect, OnUpdateRect) |
| IPC_MESSAGE_HANDLER(ViewHostMsg_UpdateIsDelayed, OnUpdateIsDelayed) |
| - IPC_MESSAGE_HANDLER(ViewHostMsg_BeginSmoothScroll, OnBeginSmoothScroll) |
| - IPC_MESSAGE_HANDLER(ViewHostMsg_BeginPinch, OnBeginPinch) |
| IPC_MESSAGE_HANDLER(ViewHostMsg_Focus, OnFocus) |
| IPC_MESSAGE_HANDLER(ViewHostMsg_Blur, OnBlur) |
| IPC_MESSAGE_HANDLER(ViewHostMsg_SetCursor, OnSetCursor) |
| @@ -1280,6 +1279,8 @@ void RenderWidgetHostImpl::RendererExited(base::TerminationStatus status, |
| } |
| BackingStoreManager::RemoveBackingStore(this); |
| + |
| + synthetic_gesture_controller_.reset(); |
| } |
| void RenderWidgetHostImpl::UpdateTextDirection(WebTextDirection direction) { |
| @@ -1712,18 +1713,21 @@ void RenderWidgetHostImpl::DidUpdateBackingStore( |
| UMA_HISTOGRAM_TIMES("MPArch.RWH_TotalPaintTime", delta); |
| } |
| -void RenderWidgetHostImpl::OnBeginSmoothScroll( |
| - const ViewHostMsg_BeginSmoothScroll_Params& params) { |
| - if (!view_) |
| - return; |
| - synthetic_gesture_controller_.BeginSmoothScroll(view_, params); |
| -} |
| +void RenderWidgetHostImpl::OnQueueSyntheticGesture( |
| + const SyntheticGesturePacket& gesture_packet) { |
| + if (!synthetic_gesture_controller_) { |
| + if (!view_) { |
| + LOG(WARNING) << |
|
jdduke (slow)
2013/11/18 16:32:55
Let's remove the warning and just early return.
Dominik Grewe
2013/11/18 17:48:05
Done.
|
| + "No view available for creating synthetic gesture controller"; |
| + return; |
| + } |
| + synthetic_gesture_controller_.reset( |
| + new SyntheticGestureController( |
| + view_->CreateSyntheticGestureTarget().Pass())); |
|
jdduke (slow)
2013/11/18 16:32:55
Hmm, I don't think you need the Pass(), do you? It
Dominik Grewe
2013/11/18 17:48:05
Yeah, you're right.
|
| + } |
| -void RenderWidgetHostImpl::OnBeginPinch( |
| - const ViewHostMsg_BeginPinch_Params& params) { |
| - if (!view_) |
| - return; |
| - synthetic_gesture_controller_.BeginPinch(view_, params); |
| + synthetic_gesture_controller_->QueueSyntheticGesture( |
| + SyntheticGesture::Create(*gesture_packet.gesture_params()).Pass()); |
| } |
| void RenderWidgetHostImpl::OnFocus() { |