| Index: content/browser/renderer_host/input/touch_selection_controller.cc | 
| diff --git a/content/browser/renderer_host/input/touch_selection_controller.cc b/content/browser/renderer_host/input/touch_selection_controller.cc | 
| index 6fc01c275ef74a204e1e0f1a1535cc079b28d9ce..7a9da4226ceeb827c19557c34780ebbc2532e33e 100644 | 
| --- a/content/browser/renderer_host/input/touch_selection_controller.cc | 
| +++ b/content/browser/renderer_host/input/touch_selection_controller.cc | 
| @@ -86,7 +86,8 @@ void TouchSelectionController::OnSelectionBoundsChanged( | 
| return; | 
| } | 
|  | 
| -  HideAndDisallowShowingAutomatically(); | 
| +  if (last_input_event_type_ != LONG_PRESS) | 
| +    HideAndDisallowShowingAutomatically(); | 
| } | 
|  | 
| bool TouchSelectionController::WillHandleTouchEvent( | 
| @@ -183,8 +184,10 @@ bool TouchSelectionController::Animate(base::TimeTicks frame_time) { | 
| } | 
|  | 
| void TouchSelectionController::OnHandleDragBegin(const TouchHandle& handle) { | 
| -  if (&handle == insertion_handle_.get()) | 
| +  if (&handle == insertion_handle_.get()) { | 
| +    client_->OnSelectionEvent(INSERTION_DRAG_STARTED, GetStartPosition()); | 
| return; | 
| +  } | 
|  | 
| if (&handle == start_selection_handle_.get()) { | 
| fixed_handle_position_ = end_selection_handle_->position() - | 
|  |