Index: cc/trees/property_tree_builder.cc |
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc |
index 1d637229d0a00b57383950d6938e6478d8561a1e..d27416661db300ee53453a807d065d60c5b070e8 100644 |
--- a/cc/trees/property_tree_builder.cc |
+++ b/cc/trees/property_tree_builder.cc |
@@ -680,8 +680,26 @@ void AddScrollNodeIfNeeded( |
node.data.main_thread_scrolling_reasons = main_thread_scrolling_reasons; |
node.data.contains_non_fast_scrollable_region = |
contains_non_fast_scrollable_region; |
- node.data.transform_id = |
- data_for_children->transform_tree_parent->transform_tree_index(); |
+ gfx::Size clip_bounds; |
+ if (layer->scroll_clip_layer()) { |
+ clip_bounds = layer->scroll_clip_layer()->bounds(); |
+ DCHECK(layer->scroll_clip_layer()->transform_tree_index() != |
+ kInvalidPropertyTreeNodeId); |
+ node.data.max_scroll_offset_affected_by_page_scale = |
+ !data_from_ancestor.transform_tree |
+ ->Node(layer->scroll_clip_layer()->transform_tree_index()) |
+ ->data.in_subtree_of_page_scale_layer && |
+ data_from_ancestor.in_subtree_of_page_scale_layer; |
+ } |
+ |
+ node.data.scroll_clip_layer_bounds = clip_bounds; |
+ node.data.is_inner_viewport_scroll_layer = |
+ layer == data_from_ancestor.inner_viewport_scroll_layer; |
+ node.data.is_outer_viewport_scroll_layer = |
+ layer == data_from_ancestor.outer_viewport_scroll_layer; |
+ |
+ node.data.bounds = layer->bounds(); |
+ |
data_for_children->scroll_tree_parent = |
data_for_children->scroll_tree->Insert(node, parent_id); |
data_for_children->main_thread_scrolling_reasons = |