| Index: content/browser/renderer_host/render_widget_host_view_aura.cc | 
| diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc | 
| index 6963b213ad3806a21bdf94826a1268a601d402f4..3a46b4c3c4f2220dd8ca20b272296b707eb5d3fa 100644 | 
| --- a/content/browser/renderer_host/render_widget_host_view_aura.cc | 
| +++ b/content/browser/renderer_host/render_widget_host_view_aura.cc | 
| @@ -481,6 +481,7 @@ RenderWidgetHostViewAura::RenderWidgetHostViewAura(RenderWidgetHost* host, | 
| begin_frame_observer_proxy_(this), | 
| set_focus_on_mouse_down_or_key_event_(false), | 
| device_scale_factor_(0.0f), | 
| +      disable_input_event_router_for_testing_(false), | 
| weak_ptr_factory_(this) { | 
| if (!is_guest_view_hack_) | 
| host_->SetView(this); | 
| @@ -869,7 +870,8 @@ bool RenderWidgetHostViewAura::ShouldRouteEvent(const ui::Event* event) const { | 
| //    frame. TODO(wjmaclean): At present, this doesn't work for OOPIF, but | 
| //    it should be a simple extension to modify RenderWidgetHostViewChildFrame | 
| //    in a similar manner to RenderWidgetHostViewGuest. | 
| -  bool result = host_->delegate() && host_->delegate()->GetInputEventRouter(); | 
| +  bool result = host_->delegate() && host_->delegate()->GetInputEventRouter() && | 
| +                !disable_input_event_router_for_testing_; | 
| if (event->IsMouseEvent()) | 
| result = result && SiteIsolationPolicy::AreCrossProcessFramesPossible(); | 
| return result; | 
| @@ -2260,6 +2262,12 @@ void RenderWidgetHostViewAura::ProcessTouchEvent( | 
| host_->ForwardTouchEventWithLatencyInfo(event, latency); | 
| } | 
|  | 
| +void RenderWidgetHostViewAura::ProcessGestureEvent( | 
| +    const blink::WebGestureEvent& event, | 
| +    const ui::LatencyInfo& latency) { | 
| +  host_->ForwardGestureEventWithLatencyInfo(event, latency); | 
| +} | 
| + | 
| void RenderWidgetHostViewAura::TransformPointToLocalCoordSpace( | 
| const gfx::Point& point, | 
| cc::SurfaceId original_surface, | 
| @@ -2368,11 +2376,21 @@ void RenderWidgetHostViewAura::OnGestureEvent(ui::GestureEvent* event) { | 
| blink::WebGestureEvent fling_cancel = gesture; | 
| fling_cancel.type = blink::WebInputEvent::GestureFlingCancel; | 
| fling_cancel.sourceDevice = blink::WebGestureDeviceTouchscreen; | 
| -    host_->ForwardGestureEvent(fling_cancel); | 
| +    if (ShouldRouteEvent(event)) { | 
| +      host_->delegate()->GetInputEventRouter()->RouteGestureEvent( | 
| +          this, &fling_cancel, ui::LatencyInfo()); | 
| +    } else { | 
| +      host_->ForwardGestureEvent(fling_cancel); | 
| +    } | 
| } | 
|  | 
| if (gesture.type != blink::WebInputEvent::Undefined) { | 
| -    host_->ForwardGestureEventWithLatencyInfo(gesture, *event->latency()); | 
| +    if (ShouldRouteEvent(event)) { | 
| +      host_->delegate()->GetInputEventRouter()->RouteGestureEvent( | 
| +          this, &gesture, *event->latency()); | 
| +    } else { | 
| +      host_->ForwardGestureEventWithLatencyInfo(gesture, *event->latency()); | 
| +    } | 
|  | 
| if (event->type() == ui::ET_GESTURE_SCROLL_BEGIN || | 
| event->type() == ui::ET_GESTURE_SCROLL_UPDATE || | 
| @@ -2738,6 +2756,7 @@ void RenderWidgetHostViewAura::SetSelectionControllerClientForTest( | 
| scoped_ptr<TouchSelectionControllerClientAura> client) { | 
| selection_controller_client_.swap(client); | 
| CreateSelectionController(); | 
| +  disable_input_event_router_for_testing_ = true; | 
| } | 
|  | 
| void RenderWidgetHostViewAura::InternalSetBounds(const gfx::Rect& rect) { | 
|  |