Chromium Code Reviews| 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 f29806a0d39156454381aaea89f7707545793c88..b400557d2deb665600e2e1fa8910d551d78df54a 100644 |
| --- a/content/browser/renderer_host/render_widget_host_view_android.cc |
| +++ b/content/browser/renderer_host/render_widget_host_view_android.cc |
| @@ -626,6 +626,14 @@ float RenderWidgetHostViewAndroid::GetTopControlsHeight() const { |
| return content_view_core_->GetTopControlsHeightDip(); |
| } |
| +float RenderWidgetHostViewAndroid::GetBottomControlsHeight() const { |
| + if (!content_view_core_) |
| + return 0.f; |
| + |
| + // The height of the top controls. |
| + return content_view_core_->GetBottomControlsHeightDip(); |
| +} |
| + |
| void RenderWidgetHostViewAndroid::UpdateCursor(const WebCursor& cursor) { |
| // There are no cursors on Android. |
| } |
| @@ -992,8 +1000,8 @@ void RenderWidgetHostViewAndroid::SubmitCompositorFrame( |
| } |
| if (surface_id_.is_null() || |
| texture_size_in_layer_ != current_surface_size_ || |
| - location_bar_content_translation_ != |
| - frame.metadata.location_bar_content_translation || |
| + top_bar_shown_ratio_ != frame.metadata.top_controls_shown_ratio || |
| + bottom_bar_shown_ratio_ != frame.metadata.bottom_controls_shown_ratio || |
|
no sievers
2016/08/16 20:29:16
This is for pixel-perfect scrolling where tearing
Ian Wen
2016/08/17 00:20:46
Done. I removed #1004, but kept #1017 as is.
|
| current_viewport_selection_ != frame.metadata.selection) { |
| RemoveLayers(); |
| if (!surface_id_.is_null()) |
| @@ -1005,8 +1013,8 @@ void RenderWidgetHostViewAndroid::SubmitCompositorFrame( |
| DCHECK(view_.GetLayer()); |
| current_surface_size_ = texture_size_in_layer_; |
| - location_bar_content_translation_ = |
| - frame.metadata.location_bar_content_translation; |
| + top_bar_shown_ratio_ = frame.metadata.top_controls_shown_ratio; |
| + bottom_bar_shown_ratio_ = frame.metadata.bottom_controls_shown_ratio; |
| current_viewport_selection_ = frame.metadata.selection; |
| AttachLayers(); |
| } |
| @@ -1246,10 +1254,9 @@ void RenderWidgetHostViewAndroid::OnFrameMetadataUpdated( |
| // 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()); |
| + gfx::RectF viewport_rect(0.0f, frame_metadata.top_controls_height * |
| + frame_metadata.top_controls_shown_ratio, |
| + viewport_size.width(), viewport_size.height()); |
| selection_controller_->OnViewportChanged(viewport_rect); |
| } |
| @@ -1263,8 +1270,10 @@ void RenderWidgetHostViewAndroid::OnFrameMetadataUpdated( |
| frame_metadata.max_page_scale_factor), |
| frame_metadata.root_layer_size, |
| frame_metadata.scrollable_viewport_size, |
| - frame_metadata.location_bar_offset, |
| - frame_metadata.location_bar_content_translation, |
| + frame_metadata.top_controls_height, |
| + frame_metadata.top_controls_shown_ratio, |
| + frame_metadata.bottom_controls_height, |
| + frame_metadata.bottom_controls_shown_ratio, |
| is_mobile_optimized, |
| frame_metadata.selection.start); |
| #if defined(VIDEO_HOLE) |