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)