| Index: cc/layer_tree_impl.cc
|
| diff --git a/cc/layer_tree_impl.cc b/cc/layer_tree_impl.cc
|
| index f16ec0035e93d2d3e7b66be833c00fdac28fa69e..14793a4ad8f460194ed6e7c9ba108a660a0b8aa4 100644
|
| --- a/cc/layer_tree_impl.cc
|
| +++ b/cc/layer_tree_impl.cc
|
| @@ -170,8 +170,7 @@ void LayerTreeImpl::SetPageScaleDelta(float delta)
|
| set_needs_update_draw_properties();
|
| }
|
|
|
| -gfx::SizeF LayerTreeImpl::ScrollableViewportSize() const {
|
| - gfx::SizeF view_bounds;
|
| +gfx::SizeF LayerTreeImpl::UnscaledScrollableViewportSize() const {
|
| // The clip layer should be used for scrolling bounds if available since it
|
| // adjusts for non-overlay scrollbars. Otherwise, fall back to our knowledge
|
| // of the physical viewport size.
|
| @@ -179,11 +178,15 @@ gfx::SizeF LayerTreeImpl::ScrollableViewportSize() const {
|
| if (root_scroll_layer_)
|
| clip_layer = root_scroll_layer_->parent();
|
| if (clip_layer && clip_layer->masksToBounds()) {
|
| - view_bounds = clip_layer->bounds();
|
| + return clip_layer->bounds();
|
| } else {
|
| - view_bounds = gfx::ScaleSize(device_viewport_size(),
|
| + return gfx::ScaleSize(device_viewport_size(),
|
| 1 / device_scale_factor());
|
| }
|
| +}
|
| +
|
| +gfx::SizeF LayerTreeImpl::ScrollableViewportSize() const {
|
| + gfx::SizeF view_bounds = UnscaledScrollableViewportSize();
|
| view_bounds.Scale(1 / total_page_scale_factor());
|
|
|
| return view_bounds;
|
| @@ -201,6 +204,15 @@ void LayerTreeImpl::UpdateMaxScrollOffset() {
|
| max_scroll.ClampToMin(gfx::Vector2dF());
|
|
|
| root_scroll_layer_->setMaxScrollOffset(gfx::ToFlooredVector2d(max_scroll));
|
| +
|
| + gfx::Vector2dF scrollable_viewport_size =
|
| + gfx::RectF(ScrollableViewportSize()).bottom_right() - gfx::PointF();
|
| + gfx::Vector2dF original_scrollable_viewport_size =
|
| + gfx::RectF(UnscaledScrollableViewportSize()).bottom_right() -
|
| + gfx::PointF();
|
| + original_scrollable_viewport_size.Scale(1 / page_scale_factor());
|
| + root_scroll_layer_->setFixedContainerSizeDelta(
|
| + scrollable_viewport_size - original_scrollable_viewport_size);
|
| }
|
|
|
| gfx::Transform LayerTreeImpl::ImplTransform() const {
|
|
|