Chromium Code Reviews| Index: cc/layers/layer_impl.cc |
| diff --git a/cc/layers/layer_impl.cc b/cc/layers/layer_impl.cc |
| index 56b79e8f20dac1673c233a73c2516c655ad9385a..a2cb07c6d7e05c14a31e4de81b735ce19437d91f 100644 |
| --- a/cc/layers/layer_impl.cc |
| +++ b/cc/layers/layer_impl.cc |
| @@ -1028,12 +1028,19 @@ void LayerImpl::SetBounds(const gfx::Size& bounds) { |
| bounds_ = bounds; |
| layer_tree_impl()->DidUpdateScrollState(id()); |
| + |
| if (masks_to_bounds()) |
| NoteLayerPropertyChangedForSubtree(); |
| else |
| NoteLayerPropertyChanged(); |
| } |
| +void LayerImpl::SetBoundsForTesting(const gfx::Size& bounds) { |
|
sunxd
2016/02/09 00:11:32
Dead code.
|
| + SetBounds(bounds); |
| + layer_tree_impl()->property_trees()->needs_rebuild = true; |
| + layer_tree_impl()->BuildPropertyTreesForTesting(); |
| +} |
| + |
| void LayerImpl::SetBoundsDelta(const gfx::Vector2dF& bounds_delta) { |
| DCHECK(IsActive()); |
| if (bounds_delta_ == bounds_delta) |
| @@ -1041,24 +1048,24 @@ void LayerImpl::SetBoundsDelta(const gfx::Vector2dF& bounds_delta) { |
| bounds_delta_ = bounds_delta; |
| - TransformTree& transform_tree = |
| - layer_tree_impl()->property_trees()->transform_tree; |
| + PropertyTrees* property_trees = layer_tree_impl()->property_trees(); |
| if (this == layer_tree_impl()->InnerViewportContainerLayer()) |
| - transform_tree.SetInnerViewportBoundsDelta(bounds_delta); |
| + property_trees->SetInnerViewportContainerBoundsDelta(bounds_delta); |
| else if (this == layer_tree_impl()->OuterViewportContainerLayer()) |
| - transform_tree.SetOuterViewportBoundsDelta(bounds_delta); |
| + property_trees->SetOuterViewportContainerBoundsDelta(bounds_delta); |
| + else if (this == layer_tree_impl()->InnerViewportScrollLayer()) |
| + property_trees->SetInnerViewportScrollBoundsDelta(bounds_delta); |
| layer_tree_impl()->DidUpdateScrollState(id()); |
| if (masks_to_bounds()) { |
| // If layer is clipping, then update the clip node using the new bounds. |
| - ClipNode* clip_node = |
| - layer_tree_impl()->property_trees()->clip_tree.Node(clip_tree_index()); |
| + ClipNode* clip_node = property_trees->clip_tree.Node(clip_tree_index()); |
| if (clip_node) { |
| DCHECK(id() == clip_node->owner_id); |
| clip_node->data.clip = gfx::RectF( |
| gfx::PointF() + offset_to_transform_parent(), gfx::SizeF(bounds())); |
| - layer_tree_impl()->property_trees()->clip_tree.set_needs_update(true); |
| + property_trees->clip_tree.set_needs_update(true); |
| } |
| NoteLayerPropertyChangedForSubtree(); |
| @@ -1619,33 +1626,8 @@ void LayerImpl::RecreateResources() { |
| } |
| gfx::ScrollOffset LayerImpl::MaxScrollOffset() const { |
| - LayerImpl* scroll_clip_layer = |
| - layer_tree_impl()->LayerById(scroll_clip_layer_id_); |
| - if (!scroll_clip_layer || bounds().IsEmpty()) |
| - return gfx::ScrollOffset(); |
| - |
| - LayerImpl const* page_scale_layer = layer_tree_impl()->PageScaleLayer(); |
| - DCHECK(this != page_scale_layer); |
| - DCHECK(this != layer_tree_impl()->InnerViewportScrollLayer() || |
| - IsContainerForFixedPositionLayers()); |
| - |
| - float scale_factor = 1.f; |
| - DCHECK(scroll_clip_layer != page_scale_layer); |
| - if (!scroll_clip_layer->IsAffectedByPageScale() && IsAffectedByPageScale()) |
| - scale_factor = layer_tree_impl()->current_page_scale_factor(); |
| - |
| - gfx::SizeF scaled_scroll_bounds = |
| - gfx::ScaleSize(BoundsForScrolling(), scale_factor); |
| - scaled_scroll_bounds.SetSize(std::floor(scaled_scroll_bounds.width()), |
| - std::floor(scaled_scroll_bounds.height())); |
| - |
| - gfx::ScrollOffset max_offset( |
| - scaled_scroll_bounds.width() - scroll_clip_layer->bounds().width(), |
| - scaled_scroll_bounds.height() - scroll_clip_layer->bounds().height()); |
| - // We need the final scroll offset to be in CSS coords. |
| - max_offset.Scale(1 / scale_factor); |
| - max_offset.SetToMax(gfx::ScrollOffset()); |
| - return max_offset; |
| + return layer_tree_impl()->property_trees()->scroll_tree.MaxScrollOffset( |
|
sunxd
2016/02/09 00:11:32
This will be moved in the next CL.
|
| + scroll_tree_index()); |
| } |
| gfx::ScrollOffset LayerImpl::ClampScrollOffsetToLimits( |