Index: content/browser/renderer_host/render_widget_host_view_android.cc |
diff --git a/content/browser/renderer_host/render_widget_host_view_android.cc b/content/browser/renderer_host/render_widget_host_view_android.cc |
index 12d71da78b6af6ee7170d3ad7424347b4a4322d2..051538aeab11b7b8757dc92fa8939c39d5c78cad 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_android.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
@@ -274,6 +274,9 @@ scoped_ptr<ui::TouchSelectionController> CreateSelectionController( |
gfx::ViewConfiguration::GetTapTimeoutInMs()); |
config.tap_slop = gfx::ViewConfiguration::GetTouchSlopInDips(); |
config.show_on_tap_for_empty_editable = false; |
+ config.enable_adaptive_handle_orientation = |
+ base::CommandLine::ForCurrentProcess()->HasSwitch( |
+ switches::kEnableAdaptiveHandleOrientation); |
config.enable_longpress_drag_selection = |
base::CommandLine::ForCurrentProcess()->HasSwitch( |
switches::kEnableLongpressDragSelection); |
@@ -1339,6 +1342,15 @@ void RenderWidgetHostViewAndroid::OnFrameMetadataUpdated( |
selection_controller_->OnSelectionBoundsChanged( |
ConvertSelectionBound(frame_metadata.selection.start), |
ConvertSelectionBound(frame_metadata.selection.end)); |
+ |
+ // Set parameters for adaptive handle orientation. |
+ gfx::SizeF viewport_size(frame_metadata.scrollable_viewport_size); |
+ viewport_size.Scale(frame_metadata.page_scale_factor); |
+ gfx::RectF viewport_rect( |
+ frame_metadata.location_bar_content_translation.x(), |
+ frame_metadata.location_bar_content_translation.y(), |
+ viewport_size.width(), viewport_size.height()); |
+ selection_controller_->OnViewportChanged(viewport_rect); |
} |
// All offsets and sizes are in CSS pixels. |