Index: cc/trees/layer_tree_host_common.cc |
diff --git a/cc/trees/layer_tree_host_common.cc b/cc/trees/layer_tree_host_common.cc |
index 392869fadda8f8659c99291ea454a4157c6067b7..ca6a480d63182a6ccf1c3c85517935c85dbd11e9 100644 |
--- a/cc/trees/layer_tree_host_common.cc |
+++ b/cc/trees/layer_tree_host_common.cc |
@@ -580,11 +580,19 @@ void CalculateDrawPropertiesInternal( |
inputs->elastic_overscroll); |
// Similarly, the device viewport and device transform are shared |
// by both trees. |
- inputs->property_trees->clip_tree.SetViewportClip( |
+ PropertyTrees* property_trees = inputs->property_trees; |
+ property_trees->clip_tree.SetViewportClip( |
gfx::RectF(gfx::SizeF(inputs->device_viewport_size))); |
- inputs->property_trees->transform_tree.SetDeviceTransform( |
+ float page_scale_factor_for_root = |
+ inputs->page_scale_layer == inputs->root_layer |
+ ? inputs->page_scale_factor |
+ : 1.f; |
+ property_trees->transform_tree.SetScreenSpaceScale( |
+ inputs->device_scale_factor, page_scale_factor_for_root, |
+ inputs->device_transform); |
+ property_trees->transform_tree.SetDeviceTransform( |
inputs->device_transform, inputs->root_layer->position()); |
- inputs->property_trees->transform_tree.SetDeviceTransformScaleFactor( |
+ property_trees->transform_tree.SetDeviceTransformScaleFactor( |
inputs->device_transform); |
draw_property_utils::ComputeVisibleRects( |
inputs->root_layer, inputs->property_trees, |