Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index f04a96cc1ee008b738d9d06839497a317f7ea1fc..88acc6a96d484aa56d79ab2039c64cbf96ef36f3 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -250,7 +250,7 @@ LayerTreeHostImpl::LayerTreeHostImpl( |
zero_budget_(false), |
device_scale_factor_(1.f), |
overhang_ui_resource_id_(0), |
- overdraw_bottom_height_(0.f), |
+ top_controls_layout_height_(0.f), |
resourceless_software_draw_(false), |
begin_impl_frame_interval_(BeginFrameArgs::DefaultInterval()), |
animation_registrar_(AnimationRegistrar::Create()), |
@@ -435,7 +435,8 @@ void LayerTreeHostImpl::StartPageScaleAnimation( |
gfx::Vector2dF scroll_total = active_tree_->TotalScrollOffset(); |
gfx::SizeF scaled_scrollable_size = active_tree_->ScrollableSize(); |
- gfx::SizeF viewport_size = UnscaledScrollableViewportSize(); |
+ gfx::SizeF viewport_size = |
+ active_tree_->InnerViewportContainerLayer()->bounds(); |
// Easing constants experimentally determined. |
scoped_ptr<TimingFunction> timing_function = |
@@ -1469,7 +1470,6 @@ CompositorFrameMetadata LayerTreeHostImpl::MakeCompositorFrameMetadata() const { |
gfx::Vector2dF(0.f, top_controls_manager_->controls_top_offset()); |
metadata.location_bar_content_translation = |
gfx::Vector2dF(0.f, top_controls_manager_->content_top_offset()); |
- metadata.overdraw_bottom_height = overdraw_bottom_height_; |
} |
active_tree_->GetViewportSelection(&metadata.selection_start, |
@@ -1682,46 +1682,16 @@ void LayerTreeHostImpl::WillBeginImplFrame(const BeginFrameArgs& args) { |
begin_impl_frame_interval_ = args.interval; |
} |
-gfx::SizeF LayerTreeHostImpl::ComputeInnerViewportContainerSize() const { |
- gfx::SizeF dip_size = |
- gfx::ScaleSize(device_viewport_size_, 1.f / device_scale_factor()); |
- |
- float top_offset = |
- top_controls_manager_ ? top_controls_manager_->content_top_offset() : 0.f; |
- |
- return gfx::SizeF(dip_size.width(), |
- dip_size.height() - top_offset - overdraw_bottom_height_); |
-} |
- |
void LayerTreeHostImpl::UpdateInnerViewportContainerSize() { |
LayerImpl* container_layer = active_tree_->InnerViewportContainerLayer(); |
if (!container_layer) |
return; |
- // We pass the value returned from UnscaledScrollableViewportSize() here as |
- // it accounts for scrollbar dimensions when |
- // container_layer->masks_to_bounds() is set. |
- container_layer->SetTemporaryImplBounds(UnscaledScrollableViewportSize()); |
-} |
- |
-gfx::SizeF LayerTreeHostImpl::UnscaledScrollableViewportSize() const { |
- // Use the root container layer bounds if it clips to them, otherwise, the |
- // true viewport size should be used. |
- LayerImpl* container_layer = active_tree_->InnerViewportContainerLayer(); |
- if (container_layer && container_layer->masks_to_bounds()) { |
- DCHECK(!top_controls_manager_); |
- DCHECK_EQ(0, overdraw_bottom_height_); |
- return container_layer->bounds(); |
- } |
- |
- return ComputeInnerViewportContainerSize(); |
-} |
- |
-float LayerTreeHostImpl::VerticalAdjust() const { |
- if (!active_tree_->InnerViewportContainerLayer()) |
- return 0; |
- |
- return active_tree_->InnerViewportContainerLayer()->BoundsDelta().y(); |
+ if (top_controls_manager_) |
+ container_layer->SetBoundsDelta( |
+ gfx::Vector2dF(0, |
+ top_controls_layout_height_ - |
+ top_controls_manager_->content_top_offset())); |
} |
void LayerTreeHostImpl::DidLoseOutputSurface() { |
@@ -2198,10 +2168,11 @@ void LayerTreeHostImpl::SetViewportSize(const gfx::Size& device_viewport_size) { |
active_tree_->set_needs_update_draw_properties(); |
} |
-void LayerTreeHostImpl::SetOverdrawBottomHeight(float overdraw_bottom_height) { |
- if (overdraw_bottom_height == overdraw_bottom_height_) |
+void LayerTreeHostImpl::SetTopControlsLayoutHeight( |
+ float top_controls_layout_height) { |
+ if (top_controls_layout_height_ == top_controls_layout_height) |
return; |
- overdraw_bottom_height_ = overdraw_bottom_height; |
+ top_controls_layout_height_ = top_controls_layout_height; |
UpdateInnerViewportContainerSize(); |
SetFullRootLayerDamage(); |
@@ -2219,7 +2190,6 @@ void LayerTreeHostImpl::SetDeviceScaleFactor(float device_scale_factor) { |
return; |
device_scale_factor_ = device_scale_factor; |
- UpdateInnerViewportContainerSize(); |
SetFullRootLayerDamage(); |
} |