| Index: third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp | 
| diff --git a/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp b/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp | 
| index 6da762ae5c812bafc5220e027c91f8b02def466e..acec3ea2035b149117486d0ab9e4e5806cfb4c77 100644 | 
| --- a/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp | 
| +++ b/third_party/WebKit/Source/platform/graphics/compositing/PaintArtifactCompositor.cpp | 
| @@ -453,8 +453,21 @@ class PropertyTreeManager { | 
| }; | 
|  | 
| void PropertyTreeManager::setDeviceScaleFactor(float deviceScaleFactor) { | 
| -  auto& rootTransformNode = *transformTree().Node(kSecondaryRootNodeId); | 
| -  rootTransformNode.local.Scale(deviceScaleFactor, deviceScaleFactor); | 
| +  auto& rootTransformNode = *transformTree().Node(kRealRootNodeId); | 
| +  rootTransformNode.needs_surface_contents_scale = true; | 
| +  rootTransformNode.surface_contents_scale = | 
| +      gfx::Vector2dF(deviceScaleFactor, deviceScaleFactor); | 
| +  // TODO(jaydasika) : We shouldn't set ToScreen and FromScreen of root | 
| +  // transform node here. They should be set while updating transform tree in | 
| +  // cc. | 
| +  gfx::Transform toScreen; | 
| +  toScreen.Scale(deviceScaleFactor, deviceScaleFactor); | 
| +  transformTree().SetToScreen(rootTransformNode.id, toScreen); | 
| +  gfx::Transform fromScreen; | 
| +  if (!toScreen.GetInverse(&fromScreen)) | 
| +    rootTransformNode.ancestors_are_invertible = false; | 
| +  transformTree().SetFromScreen(rootTransformNode.id, fromScreen); | 
| +  transformTree().set_needs_update(true); | 
| } | 
|  | 
| int PropertyTreeManager::compositorIdForTransformNode( | 
|  |