| 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 9a1d709a2ef00f024c3194de5ec841498afcfc3b..3e971a32c68b59b14ed1ba4ed154aae8c3a866e3 100644
|
| --- a/content/browser/renderer_host/render_widget_host_impl.cc
|
| +++ b/content/browser/renderer_host/render_widget_host_impl.cc
|
| @@ -186,7 +186,6 @@ RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate,
|
| suppress_next_char_events_(false),
|
| pending_mouse_lock_request_(false),
|
| allow_privileged_mouse_lock_(false),
|
| - has_touch_handler_(false),
|
| last_input_number_(static_cast<int64>(GetProcess()->GetID()) << 32),
|
| next_browser_snapshot_id_(1),
|
| browser_composite_latency_history_(kBrowserCompositeLatencyHistorySize),
|
| @@ -222,10 +221,7 @@ RenderWidgetHostImpl::RenderWidgetHostImpl(RenderWidgetHostDelegate* delegate,
|
| if (!hidden)
|
| process_->WidgetRestored();
|
|
|
| - input_router_.reset(new InputRouterImpl(
|
| - process_, this, this, routing_id_, GetInputRouterConfigForPlatform()));
|
| -
|
| - touch_emulator_.reset();
|
| + ResetInputRouter();
|
|
|
| RenderViewHostImpl* rvh = static_cast<RenderViewHostImpl*>(
|
| IsRenderView() ? RenderViewHost::From(this) : NULL);
|
| @@ -391,13 +387,18 @@ void RenderWidgetHostImpl::SuppressNextCharEvents() {
|
| suppress_next_char_events_ = true;
|
| }
|
|
|
| +void RenderWidgetHostImpl::ResetPendingInput() {
|
| + if (input_router_->HasPendingEvents())
|
| + ResetInputRouter();
|
| +}
|
| +
|
| void RenderWidgetHostImpl::FlushInput() {
|
| - input_router_->Flush();
|
| + input_router_->RequestFlushedNotification();
|
| if (synthetic_gesture_controller_)
|
| synthetic_gesture_controller_->Flush(base::TimeTicks::Now());
|
| }
|
|
|
| -void RenderWidgetHostImpl::SetNeedsFlush() {
|
| +void RenderWidgetHostImpl::SetNeedsFlushInput() {
|
| if (view_)
|
| view_->OnSetNeedsFlushInput();
|
| }
|
| @@ -896,15 +897,15 @@ void RenderWidgetHostImpl::ForwardWheelEventWithLatencyInfo(
|
| const ui::LatencyInfo& ui_latency) {
|
| TRACE_EVENT0("input", "RenderWidgetHostImpl::ForwardWheelEvent");
|
|
|
| + if (IgnoreInputEvents())
|
| + return;
|
| +
|
| ui::LatencyInfo::InputCoordinate logical_coordinate(wheel_event.x,
|
| wheel_event.y);
|
|
|
| ui::LatencyInfo latency_info = CreateInputEventLatencyInfoIfNotExist(
|
| &ui_latency, wheel_event.type, &logical_coordinate, 1);
|
|
|
| - if (IgnoreInputEvents())
|
| - return;
|
| -
|
| if (touch_emulator_ && touch_emulator_->HandleMouseWheelEvent(wheel_event))
|
| return;
|
|
|
| @@ -1287,8 +1288,7 @@ void RenderWidgetHostImpl::RendererExited(base::TerminationStatus status,
|
| // renderer. Otherwise it may be stuck waiting for the old renderer to ack an
|
| // event. (In particular, the above call to view_->RenderProcessGone will
|
| // destroy the aura window, which may dispatch a synthetic mouse move.)
|
| - input_router_.reset(new InputRouterImpl(
|
| - process_, this, this, routing_id_, GetInputRouterConfigForPlatform()));
|
| + ResetInputRouter();
|
|
|
| synthetic_gesture_controller_.reset();
|
| }
|
| @@ -1416,6 +1416,12 @@ void RenderWidgetHostImpl::RendererIsResponsive() {
|
| }
|
| }
|
|
|
| +void RenderWidgetHostImpl::ResetInputRouter() {
|
| + base::AutoReset<bool> reset_ignore_input_events(&ignore_input_events_, true);
|
| + input_router_.reset(new InputRouterImpl(
|
| + process_, this, this, routing_id_, GetInputRouterConfigForPlatform()));
|
| +}
|
| +
|
| void RenderWidgetHostImpl::OnRenderViewReady() {
|
| SendScreenRects();
|
| WasResized();
|
| @@ -1857,15 +1863,9 @@ void RenderWidgetHostImpl::DecrementInFlightEventCount() {
|
| }
|
| }
|
|
|
| -void RenderWidgetHostImpl::OnHasTouchEventHandlers(bool has_handlers) {
|
| - has_touch_handler_ = has_handlers;
|
| -}
|
| -
|
| void RenderWidgetHostImpl::DidFlush() {
|
| if (synthetic_gesture_controller_)
|
| synthetic_gesture_controller_->OnDidFlushInput();
|
| - if (view_)
|
| - view_->OnDidFlushInput();
|
| }
|
|
|
| void RenderWidgetHostImpl::DidOverscroll(const DidOverscrollParams& params) {
|
|
|