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 4c3471fde722dc6d7b8a3d9a89cf588eeb55c98c..0351d549a5f7b888391351b502b4b1968c97a9ec 100644 |
--- a/content/browser/renderer_host/render_widget_host_view_android.cc |
+++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
@@ -1371,6 +1371,15 @@ void RenderWidgetHostViewAndroid::OnFrameMetadataUpdated( |
bool is_mobile_optimized = IsMobileOptimizedFrame(frame_metadata); |
gesture_provider_.SetDoubleTapSupportForPageEnabled(!is_mobile_optimized); |
+ float dip_scale = view_.GetDipScale(); |
+ float top_controls_pix = frame_metadata.top_controls_height * dip_scale; |
+ float top_shown_pix = |
+ top_controls_pix * frame_metadata.top_controls_shown_ratio; |
+ |
+ if (ime_adapter_android_) |
+ ime_adapter_android_->UpdateFrameInfo(frame_metadata.selection.start, |
+ dip_scale, top_shown_pix); |
+ |
if (!content_view_core_) |
return; |
@@ -1397,22 +1406,17 @@ void RenderWidgetHostViewAndroid::OnFrameMetadataUpdated( |
frame_metadata.top_controls_height * |
frame_metadata.top_controls_shown_ratio)); |
- float dip_scale = view_.GetDipScale(); |
- float top_controls_pix = frame_metadata.top_controls_height * dip_scale; |
- float top_shown_pix = |
- top_controls_pix * frame_metadata.top_controls_shown_ratio; |
bool top_changed = !FloatEquals(top_shown_pix, prev_top_shown_pix_); |
- |
- float bottom_controls_pix = frame_metadata.bottom_controls_height * dip_scale; |
- float bottom_shown_pix = |
- bottom_controls_pix * frame_metadata.bottom_controls_shown_ratio; |
- bool bottom_changed = !FloatEquals(bottom_shown_pix, prev_bottom_shown_pix_); |
- |
if (top_changed) { |
float translate = top_shown_pix - top_controls_pix; |
view_.OnTopControlsChanged(translate, top_shown_pix); |
prev_top_shown_pix_ = top_shown_pix; |
} |
+ |
+ float bottom_controls_pix = frame_metadata.bottom_controls_height * dip_scale; |
+ float bottom_shown_pix = |
+ bottom_controls_pix * frame_metadata.bottom_controls_shown_ratio; |
+ bool bottom_changed = !FloatEquals(bottom_shown_pix, prev_bottom_shown_pix_); |
if (bottom_changed) { |
float translate = bottom_controls_pix - bottom_shown_pix; |
view_.OnBottomControlsChanged(translate, bottom_shown_pix); |
@@ -1421,16 +1425,12 @@ void RenderWidgetHostViewAndroid::OnFrameMetadataUpdated( |
// All offsets and sizes are in CSS pixels. |
content_view_core_->UpdateFrameInfo( |
- frame_metadata.root_scroll_offset, |
- frame_metadata.page_scale_factor, |
+ frame_metadata.root_scroll_offset, frame_metadata.page_scale_factor, |
gfx::Vector2dF(frame_metadata.min_page_scale_factor, |
frame_metadata.max_page_scale_factor), |
- frame_metadata.root_layer_size, |
- frame_metadata.scrollable_viewport_size, |
+ frame_metadata.root_layer_size, frame_metadata.scrollable_viewport_size, |
frame_metadata.top_controls_height, |
- frame_metadata.top_controls_shown_ratio, |
- is_mobile_optimized, |
- frame_metadata.selection.start); |
+ frame_metadata.top_controls_shown_ratio, is_mobile_optimized); |
} |
void RenderWidgetHostViewAndroid::ShowInternal() { |