Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1378)

Unified Diff: content/browser/renderer_host/render_widget_host_view_android.cc

Issue 2834343005: Let IME frame update bypass ContentViewCore (Closed)
Patch Set: comment Created 3 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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() {

Powered by Google App Engine
This is Rietveld 408576698