Update from https://crrev.com/306901
Includes changes for https://crrev.com/306768
Review URL: https://codereview.chromium.org/783543003
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index a99ede8..066d26c 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -621,9 +621,6 @@
if (!scroll_clip_layer_)
return gfx::Vector2dF();
- float scale_delta = layer_tree_impl()->page_scale_delta();
- float scale = layer_tree_impl()->page_scale_factor();
-
gfx::Vector2dF delta_from_scroll = scroll_clip_layer_->bounds_delta();
// In virtual-viewport mode, we don't need to compensate for pinch zoom or
@@ -632,6 +629,10 @@
if (layer_tree_impl()->settings().use_pinch_virtual_viewport)
return delta_from_scroll;
+ float scale_delta = layer_tree_impl()->page_scale_delta();
+ float scale = layer_tree_impl()->current_page_scale_factor() /
+ layer_tree_impl()->page_scale_delta();
+
delta_from_scroll.Scale(1.f / scale);
// The delta-from-pinch component requires some explanation: A viewport of
@@ -1213,7 +1214,7 @@
const gfx::Transform& layer_transform = current_layer->transform();
if (current_layer == page_scale_layer) {
DCHECK(layer_transform.IsIdentity());
- current_layer_scale = layer_tree_impl()->total_page_scale_factor();
+ current_layer_scale = layer_tree_impl()->current_page_scale_factor();
} else {
// TODO(wjmaclean) Should we allow for translation too?
DCHECK(layer_transform.IsScale2d());
@@ -1230,7 +1231,7 @@
// page scale layer may coincide with the clip layer, and so this is
// necessary.
if (page_scale_layer == scroll_clip_layer_)
- scale_factor *= layer_tree_impl()->total_page_scale_factor();
+ scale_factor *= layer_tree_impl()->current_page_scale_factor();
scaled_scroll_bounds.SetSize(scale_factor * scaled_scroll_bounds.width(),
scale_factor * scaled_scroll_bounds.height());
@@ -1289,7 +1290,7 @@
const gfx::Transform& layer_transform = current_layer->transform();
if (current_layer == page_scale_layer) {
DCHECK(layer_transform.IsIdentity());
- float scale_factor = layer_tree_impl()->total_page_scale_factor();
+ float scale_factor = layer_tree_impl()->current_page_scale_factor();
current_offset.Scale(scale_factor);
scroll_rect.Scale(scale_factor);
} else {
@@ -1307,8 +1308,8 @@
// page scale layer may coincide with the clip layer, and so this is
// necessary.
if (page_scale_layer == scrollbar_clip_layer) {
- scroll_rect.Scale(layer_tree_impl()->total_page_scale_factor());
- current_offset.Scale(layer_tree_impl()->total_page_scale_factor());
+ scroll_rect.Scale(layer_tree_impl()->current_page_scale_factor());
+ current_offset.Scale(layer_tree_impl()->current_page_scale_factor());
}
bool scrollbar_needs_animation = false;
@@ -1343,7 +1344,7 @@
// Non-overlay scrollbars also shouldn't trigger animations.
bool is_animatable_scrollbar =
scrollbar_layer->is_overlay_scrollbar() &&
- ((layer_tree_impl()->total_page_scale_factor() >
+ ((layer_tree_impl()->current_page_scale_factor() >
layer_tree_impl()->min_page_scale_factor()) ||
!layer_tree_impl()->settings().use_pinch_zoom_scrollbars);
if (is_animatable_scrollbar)