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) |