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()) {