Chromium Code Reviews| Index: cc/trees/property_tree_builder.cc |
| diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc |
| index 7f48b64b07bd0b959f0cef2b7a2f09b898239319..70dd418375148efb4a9d9be45fb9328146029411 100644 |
| --- a/cc/trees/property_tree_builder.cc |
| +++ b/cc/trees/property_tree_builder.cc |
| @@ -212,8 +212,13 @@ bool AddTransformNodeIfNeeded( |
| } |
| if (layer->IsContainerForFixedPositionLayers() || is_root) { |
| - DCHECK(!is_scrollable || layer->transform().IsIdentity()); |
| - data_for_children->transform_fixed_parent = layer; |
| + if (is_scrollable) { |
| + DCHECK(!is_root); |
| + DCHECK(layer->transform().IsIdentity()); |
| + data_for_children->transform_fixed_parent = layer->parent(); |
| + } else { |
| + data_for_children->transform_fixed_parent = layer; |
| + } |
| } |
| data_for_children->transform_tree_parent = layer; |
| @@ -386,6 +391,9 @@ void BuildPropertyTreesTopLevelInternal(LayerType* root_layer, |
| const gfx::Rect& viewport, |
| const gfx::Transform& device_transform, |
| PropertyTrees* property_trees) { |
| + if (!property_trees->needs_rebuild) |
| + return; |
|
ajuma
2015/05/29 17:47:08
This change causes about 16 unit tests to fail, si
enne (OOO)
2015/05/29 20:07:53
Agreed that the default should be don't rebuild un
|
| + |
| property_trees->sequence_number++; |
| DataForRecursion<LayerType> data_for_recursion; |
| @@ -433,10 +441,6 @@ void PropertyTreeBuilder::BuildPropertyTrees( |
| const gfx::Rect& viewport, |
| const gfx::Transform& device_transform, |
| PropertyTrees* property_trees) { |
| - // TODO(enne): hoist this out of here |
| - if (!property_trees->needs_rebuild) |
| - return; |
| - |
| BuildPropertyTreesTopLevelInternal( |
| root_layer, page_scale_layer, page_scale_factor, device_scale_factor, |
| viewport, device_transform, property_trees); |