| Index: content/browser/renderer_host/input/synthetic_gesture_target_aura.cc | 
| diff --git a/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc b/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc | 
| index 64e1c16b9f72172561d84f1da9cb712e9c378fa6..8d5c8022572759114afd84d0b15dab93628ffefd 100644 | 
| --- a/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc | 
| +++ b/content/browser/renderer_host/input/synthetic_gesture_target_aura.cc | 
| @@ -34,8 +34,6 @@ void SyntheticGestureTargetAura::DispatchWebTouchEventToPlatform( | 
| const ui::LatencyInfo& latency_info) { | 
| TouchEventWithLatencyInfo touch_with_latency(web_touch, latency_info); | 
| for (size_t i = 0; i < touch_with_latency.event.touchesLength; i++) { | 
| -    touch_with_latency.event.touches[i].position.x *= device_scale_factor_; | 
| -    touch_with_latency.event.touches[i].position.y *= device_scale_factor_; | 
| touch_with_latency.event.touches[i].radiusX *= device_scale_factor_; | 
| touch_with_latency.event.touches[i].radiusY *= device_scale_factor_; | 
| } | 
| @@ -49,6 +47,15 @@ void SyntheticGestureTargetAura::DispatchWebTouchEventToPlatform( | 
| for (ScopedVector<ui::TouchEvent>::iterator iter = events.begin(), | 
| end = events.end(); iter != end; ++iter) { | 
| (*iter)->ConvertLocationToTarget(window, host->window()); | 
| + | 
| +    // Apply the screen scale factor to the event location after it has been | 
| +    // transformed to the target. | 
| +    gfx::PointF device_location = | 
| +        gfx::ScalePoint((*iter)->location_f(), device_scale_factor_); | 
| +    gfx::PointF device_root_location = | 
| +        gfx::ScalePoint((*iter)->root_location_f(), device_scale_factor_); | 
| +    (*iter)->set_location_f(device_location); | 
| +    (*iter)->set_root_location_f(device_root_location); | 
| ui::EventDispatchDetails details = | 
| host->event_processor()->OnEventFromSource(*iter); | 
| if (details.dispatcher_destroyed) | 
|  |