| Index: cc/layers/painted_scrollbar_layer_impl.cc
 | 
| diff --git a/cc/layers/painted_scrollbar_layer_impl.cc b/cc/layers/painted_scrollbar_layer_impl.cc
 | 
| index 068d42f2a5f626b255cb5c9c5b058a41f68bc64c..b05d51e500956620333a0fe5659caf05caab39cb 100644
 | 
| --- a/cc/layers/painted_scrollbar_layer_impl.cc
 | 
| +++ b/cc/layers/painted_scrollbar_layer_impl.cc
 | 
| @@ -32,6 +32,7 @@ PaintedScrollbarLayerImpl::PaintedScrollbarLayerImpl(
 | 
|      : ScrollbarLayerImplBase(tree_impl, id, orientation, false, false),
 | 
|        track_ui_resource_id_(0),
 | 
|        thumb_ui_resource_id_(0),
 | 
| +      internal_contents_scale_(1.f),
 | 
|        thumb_thickness_(0),
 | 
|        thumb_length_(0),
 | 
|        track_start_(0),
 | 
| @@ -51,6 +52,9 @@ void PaintedScrollbarLayerImpl::PushPropertiesTo(LayerImpl* layer) {
 | 
|    PaintedScrollbarLayerImpl* scrollbar_layer =
 | 
|        static_cast<PaintedScrollbarLayerImpl*>(layer);
 | 
|  
 | 
| +  scrollbar_layer->set_internal_contents_scale_and_bounds(
 | 
| +      internal_contents_scale_, internal_content_bounds_);
 | 
| +
 | 
|    scrollbar_layer->SetThumbThickness(thumb_thickness_);
 | 
|    scrollbar_layer->SetThumbLength(thumb_length_);
 | 
|    scrollbar_layer->SetTrackStart(track_start_);
 | 
| @@ -68,26 +72,28 @@ bool PaintedScrollbarLayerImpl::WillDraw(DrawMode draw_mode,
 | 
|  
 | 
|  void PaintedScrollbarLayerImpl::AppendQuads(
 | 
|      RenderPass* render_pass,
 | 
| -    const Occlusion& occlusion_in_content_space,
 | 
|      AppendQuadsData* append_quads_data) {
 | 
|    bool premultipled_alpha = true;
 | 
|    bool flipped = false;
 | 
|    bool nearest_neighbor = false;
 | 
|    gfx::PointF uv_top_left(0.f, 0.f);
 | 
|    gfx::PointF uv_bottom_right(1.f, 1.f);
 | 
| -  gfx::Rect bounds_rect(bounds());
 | 
| -  gfx::Rect content_bounds_rect(content_bounds());
 | 
|  
 | 
|    SharedQuadState* shared_quad_state =
 | 
|        render_pass->CreateAndAppendSharedQuadState();
 | 
| -  PopulateSharedQuadState(shared_quad_state);
 | 
| +  PopulateScaledSharedQuadState(shared_quad_state, internal_contents_scale_);
 | 
|  
 | 
| -  AppendDebugBorderQuad(
 | 
| -      render_pass, content_bounds(), shared_quad_state, append_quads_data);
 | 
| +  AppendDebugBorderQuad(render_pass, internal_content_bounds_,
 | 
| +                        shared_quad_state, append_quads_data);
 | 
|  
 | 
|    gfx::Rect thumb_quad_rect = ComputeThumbQuadRect();
 | 
| +  gfx::Rect scaled_thumb_quad_rect =
 | 
| +      gfx::ScaleToEnclosingRect(thumb_quad_rect, internal_contents_scale_);
 | 
|    gfx::Rect visible_thumb_quad_rect =
 | 
| -      occlusion_in_content_space.GetUnoccludedContentRect(thumb_quad_rect);
 | 
| +      draw_properties().occlusion_in_content_space.GetUnoccludedContentRect(
 | 
| +          thumb_quad_rect);
 | 
| +  gfx::Rect scaled_visible_thumb_quad_rect = gfx::ScaleToEnclosingRect(
 | 
| +      visible_thumb_quad_rect, internal_contents_scale_);
 | 
|  
 | 
|    ResourceProvider::ResourceId thumb_resource_id =
 | 
|        layer_tree_impl()->ResourceIdForUIResource(thumb_ui_resource_id_);
 | 
| @@ -99,40 +105,29 @@ void PaintedScrollbarLayerImpl::AppendQuads(
 | 
|      const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
 | 
|      TextureDrawQuad* quad =
 | 
|          render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
 | 
| -    quad->SetNew(shared_quad_state,
 | 
| -                 thumb_quad_rect,
 | 
| -                 opaque_rect,
 | 
| -                 visible_thumb_quad_rect,
 | 
| -                 thumb_resource_id,
 | 
| -                 premultipled_alpha,
 | 
| -                 uv_top_left,
 | 
| -                 uv_bottom_right,
 | 
| -                 SK_ColorTRANSPARENT,
 | 
| -                 opacity,
 | 
| -                 flipped,
 | 
| -                 nearest_neighbor);
 | 
| +    quad->SetNew(shared_quad_state, scaled_thumb_quad_rect, opaque_rect,
 | 
| +                 scaled_visible_thumb_quad_rect, thumb_resource_id,
 | 
| +                 premultipled_alpha, uv_top_left, uv_bottom_right,
 | 
| +                 SK_ColorTRANSPARENT, opacity, flipped, nearest_neighbor);
 | 
|    }
 | 
|  
 | 
| -  gfx::Rect track_quad_rect = content_bounds_rect;
 | 
| +  gfx::Rect track_quad_rect(bounds());
 | 
| +  gfx::Rect scaled_track_quad_rect(internal_content_bounds_);
 | 
|    gfx::Rect visible_track_quad_rect =
 | 
| -      occlusion_in_content_space.GetUnoccludedContentRect(track_quad_rect);
 | 
| +      draw_properties().occlusion_in_content_space.GetUnoccludedContentRect(
 | 
| +          track_quad_rect);
 | 
| +  gfx::Rect scaled_visible_track_quad_rect = gfx::ScaleToEnclosingRect(
 | 
| +      visible_track_quad_rect, internal_contents_scale_);
 | 
|    if (track_resource_id && !visible_track_quad_rect.IsEmpty()) {
 | 
| -    gfx::Rect opaque_rect(contents_opaque() ? track_quad_rect : gfx::Rect());
 | 
| +    gfx::Rect opaque_rect(contents_opaque() ? scaled_track_quad_rect
 | 
| +                                            : gfx::Rect());
 | 
|      const float opacity[] = {1.0f, 1.0f, 1.0f, 1.0f};
 | 
|      TextureDrawQuad* quad =
 | 
|          render_pass->CreateAndAppendDrawQuad<TextureDrawQuad>();
 | 
| -    quad->SetNew(shared_quad_state,
 | 
| -                 track_quad_rect,
 | 
| -                 opaque_rect,
 | 
| -                 visible_track_quad_rect,
 | 
| -                 track_resource_id,
 | 
| -                 premultipled_alpha,
 | 
| -                 uv_top_left,
 | 
| -                 uv_bottom_right,
 | 
| -                 SK_ColorTRANSPARENT,
 | 
| -                 opacity,
 | 
| -                 flipped,
 | 
| -                 nearest_neighbor);
 | 
| +    quad->SetNew(shared_quad_state, scaled_track_quad_rect, opaque_rect,
 | 
| +                 scaled_visible_track_quad_rect, track_resource_id,
 | 
| +                 premultipled_alpha, uv_top_left, uv_bottom_right,
 | 
| +                 SK_ColorTRANSPARENT, opacity, flipped, nearest_neighbor);
 | 
|    }
 | 
|  }
 | 
|  
 | 
| 
 |