| Index: cc/trees/layer_tree_impl.cc
|
| diff --git a/cc/trees/layer_tree_impl.cc b/cc/trees/layer_tree_impl.cc
|
| index bc9acf5a9e2df5015736e5859b98110e4c496ce4..fa4584c39806a23c968d9ffc226579a782cde6ed 100644
|
| --- a/cc/trees/layer_tree_impl.cc
|
| +++ b/cc/trees/layer_tree_impl.cc
|
| @@ -259,6 +259,9 @@ struct UpdateTilePrioritiesForLayer {
|
| };
|
|
|
| void LayerTreeImpl::UpdateDrawProperties(UpdateDrawPropertiesReason reason) {
|
| + if (IsActiveTree() && RootScrollLayer() && RootClipLayer())
|
| + UpdateRootScrollLayerSizeDelta();
|
| +
|
| if (settings().solid_color_scrollbars &&
|
| IsActiveTree() &&
|
| RootScrollLayer()) {
|
| @@ -666,4 +669,23 @@ bool LayerTreeImpl::HasPinchZoomScrollbars() const {
|
| pinch_zoom_scrollbar_vertical_layer_id_ != Layer::INVALID_ID;
|
| }
|
|
|
| +void LayerTreeImpl::UpdateRootScrollLayerSizeDelta() {
|
| + LayerImpl* root_scroll = RootScrollLayer();
|
| + LayerImpl* root_clip = RootClipLayer();
|
| + DCHECK(root_scroll);
|
| + DCHECK(root_clip);
|
| + DCHECK(IsActiveTree());
|
| +
|
| + gfx::Vector2dF scrollable_viewport_size =
|
| + gfx::RectF(ScrollableViewportSize()).bottom_right() - gfx::PointF();
|
| +
|
| + gfx::Vector2dF original_viewport_size =
|
| + gfx::RectF(root_clip->bounds()).bottom_right() -
|
| + gfx::PointF();
|
| + original_viewport_size.Scale(1 / page_scale_factor());
|
| +
|
| + root_scroll->SetFixedContainerSizeDelta(
|
| + scrollable_viewport_size - original_viewport_size);
|
| +}
|
| +
|
| } // namespace cc
|
|
|