cc: Make impl-thread property trees handle bounds delta

This makes the transform tree aware of inner and outer viewport
bounds delta, and makes transform nodes know whether their
position is affected by inner or outer viewport bounds delta.

LayerPositionConstraintTests now pass with verification enabled.

BUG=497806
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel

Review URL: https://codereview.chromium.org/1159423002

Cr-Commit-Position: refs/heads/master@{#336268}
diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc
index 3144472..bc61a2a 100644
--- a/cc/layers/layer_impl.cc
+++ b/cc/layers/layer_impl.cc
@@ -856,11 +856,22 @@
 }
 
 void LayerImpl::SetBoundsDelta(const gfx::Vector2dF& bounds_delta) {
+  DCHECK(IsActive());
   if (bounds_delta_ == bounds_delta)
     return;
 
   bounds_delta_ = bounds_delta;
 
+  TransformTree& transform_tree =
+      layer_tree_impl()->property_trees()->transform_tree;
+  if (this == layer_tree_impl()->InnerViewportContainerLayer()) {
+    transform_tree.set_inner_viewport_bounds_delta(bounds_delta);
+    transform_tree.set_needs_update(true);
+  } else if (this == layer_tree_impl()->OuterViewportContainerLayer()) {
+    transform_tree.set_outer_viewport_bounds_delta(bounds_delta);
+    transform_tree.set_needs_update(true);
+  }
+
   ScrollbarParametersDidChange(true);
 
   if (masks_to_bounds()) {