| Index: cc/layers/painted_overlay_scrollbar_layer_impl.h | 
| diff --git a/cc/layers/painted_overlay_scrollbar_layer_impl.h b/cc/layers/painted_overlay_scrollbar_layer_impl.h | 
| new file mode 100644 | 
| index 0000000000000000000000000000000000000000..fef31208864c9c2f369cf2e5147e80a63e66a4d9 | 
| --- /dev/null | 
| +++ b/cc/layers/painted_overlay_scrollbar_layer_impl.h | 
| @@ -0,0 +1,82 @@ | 
| +// Copyright 2016 The Chromium Authors. All rights reserved. | 
| +// Use of this source code is governed by a BSD-style license that can be | 
| +// found in the LICENSE file. | 
| + | 
| +#ifndef CC_LAYERS_PAINTED_OVERLAY_SCROLLBAR_LAYER_IMPL_H_ | 
| +#define CC_LAYERS_PAINTED_OVERLAY_SCROLLBAR_LAYER_IMPL_H_ | 
| + | 
| +#include "base/macros.h" | 
| +#include "cc/base/cc_export.h" | 
| +#include "cc/input/scrollbar.h" | 
| +#include "cc/layers/scrollbar_layer_impl_base.h" | 
| +#include "cc/quads/nine_patch_generator.h" | 
| +#include "cc/resources/ui_resource_client.h" | 
| + | 
| +namespace cc { | 
| + | 
| +class LayerTreeImpl; | 
| + | 
| +class CC_EXPORT PaintedOverlayScrollbarLayerImpl | 
| +    : public ScrollbarLayerImplBase { | 
| + public: | 
| +  static std::unique_ptr<PaintedOverlayScrollbarLayerImpl> Create( | 
| +      LayerTreeImpl* tree_impl, | 
| +      int id, | 
| +      ScrollbarOrientation orientation, | 
| +      bool is_left_side_vertical_scrollbar); | 
| +  ~PaintedOverlayScrollbarLayerImpl() override; | 
| + | 
| +  // LayerImpl implementation. | 
| +  std::unique_ptr<LayerImpl> CreateLayerImpl(LayerTreeImpl* tree_impl) override; | 
| +  void PushPropertiesTo(LayerImpl* layer) override; | 
| + | 
| +  bool WillDraw(DrawMode draw_mode, | 
| +                ResourceProvider* resource_provider) override; | 
| +  void AppendQuads(RenderPass* render_pass, | 
| +                   AppendQuadsData* append_quads_data) override; | 
| + | 
| +  void SetThumbThickness(int thumb_thickness); | 
| +  void SetThumbLength(int thumb_length); | 
| +  void SetTrackStart(int track_start); | 
| +  void SetTrackLength(int track_length); | 
| + | 
| +  void SetImageBounds(const gfx::Size& bounds); | 
| +  void SetAperture(const gfx::Rect& aperture); | 
| + | 
| +  void set_thumb_ui_resource_id(UIResourceId uid) { | 
| +    thumb_ui_resource_id_ = uid; | 
| +  } | 
| + | 
| + protected: | 
| +  PaintedOverlayScrollbarLayerImpl(LayerTreeImpl* tree_impl, | 
| +                                   int id, | 
| +                                   ScrollbarOrientation orientation, | 
| +                                   bool is_left_side_vertical_scrollbar); | 
| + | 
| +  // ScrollbarLayerImplBase implementation. | 
| +  int ThumbThickness() const override; | 
| +  int ThumbLength() const override; | 
| +  float TrackLength() const override; | 
| +  int TrackStart() const override; | 
| +  bool IsThumbResizable() const override; | 
| + | 
| + private: | 
| +  const char* LayerTypeAsString() const override; | 
| + | 
| +  UIResourceId thumb_ui_resource_id_; | 
| + | 
| +  int thumb_thickness_; | 
| +  int thumb_length_; | 
| +  int track_start_; | 
| +  int track_length_; | 
| + | 
| +  gfx::Size image_bounds_; | 
| +  gfx::Rect aperture_; | 
| + | 
| +  NinePatchGenerator quad_generator_; | 
| + | 
| +  DISALLOW_COPY_AND_ASSIGN(PaintedOverlayScrollbarLayerImpl); | 
| +}; | 
| + | 
| +}  // namespace cc | 
| +#endif  // CC_LAYERS_PAINTED_OVERLAY_SCROLLBAR_LAYER_IMPL_H_ | 
|  |