Index: cc/trees/property_tree_builder.cc |
diff --git a/cc/trees/property_tree_builder.cc b/cc/trees/property_tree_builder.cc |
index edc102623e0f4d50260d61e4b7850fde76c12804..0c95c45e0bad551335ab4867ff14692cacbdb40a 100644 |
--- a/cc/trees/property_tree_builder.cc |
+++ b/cc/trees/property_tree_builder.cc |
@@ -630,12 +630,10 @@ bool AddTransformNodeIfNeeded( |
} |
float post_local_scale_factor = 1.0f; |
- if (is_root) |
- post_local_scale_factor = |
- data_for_children->property_trees->transform_tree.device_scale_factor(); |
if (is_page_scale_layer) { |
- post_local_scale_factor *= data_from_ancestor.page_scale_factor; |
+ if (!is_root) |
+ post_local_scale_factor *= data_from_ancestor.page_scale_factor; |
data_for_children->property_trees->transform_tree.set_page_scale_factor( |
data_from_ancestor.page_scale_factor); |
} |
@@ -1339,6 +1337,10 @@ void BuildPropertyTreesTopLevelInternal( |
draw_property_utils::UpdateElasticOverscroll( |
property_trees, overscroll_elasticity_layer, elastic_overscroll); |
property_trees->clip_tree.SetViewportClip(gfx::RectF(viewport)); |
+ float page_scale_factor_for_root = |
+ page_scale_layer == root_layer ? page_scale_factor : 1.f; |
+ property_trees->transform_tree.SetScreenSpaceScale( |
+ device_scale_factor, page_scale_factor_for_root, device_transform); |
property_trees->transform_tree.SetDeviceTransform(device_transform, |
root_layer->position()); |
return; |
@@ -1379,11 +1381,17 @@ void BuildPropertyTreesTopLevelInternal( |
device_scale_factor); |
data_for_recursion.safe_opaque_background_color = color; |
+ float page_scale_factor_for_root = |
+ page_scale_layer == root_layer ? page_scale_factor : 1.f; |
+ data_for_recursion.property_trees->transform_tree.SetScreenSpaceScale( |
+ device_scale_factor, page_scale_factor_for_root, device_transform); |
+ |
ClipNode root_clip; |
root_clip.resets_clip = true; |
root_clip.applies_local_clip = true; |
root_clip.clip = gfx::RectF(viewport); |
root_clip.transform_id = kRootPropertyTreeNodeId; |
+ root_clip.target_transform_id = kRootPropertyTreeNodeId; |
data_for_recursion.clip_tree_parent = |
data_for_recursion.property_trees->clip_tree.Insert( |
root_clip, kRootPropertyTreeNodeId); |