| Index: webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.cc
|
| diff --git a/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.cc b/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.cc
|
| index a8080212beb7ba55e548044a884ba70ec6fa86ad..fa80e121cd65823e23e42b0a4acd094198e77a92 100644
|
| --- a/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.cc
|
| +++ b/webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.cc
|
| @@ -4,12 +4,47 @@
|
|
|
| #include "webkit/renderer/compositor_bindings/web_scrollbar_layer_impl.h"
|
|
|
| +#include "cc/base/switches.h"
|
| #include "cc/layers/scrollbar_layer.h"
|
| +#include "cc/layers/scrollbar_layer_interface.h"
|
| +#include "cc/layers/solid_color_scrollbar_layer.h"
|
| #include "third_party/WebKit/public/platform/WebScrollbar.h"
|
| #include "webkit/renderer/compositor_bindings/scrollbar_impl.h"
|
| #include "webkit/renderer/compositor_bindings/web_layer_impl.h"
|
|
|
| using cc::ScrollbarLayer;
|
| +using cc::SolidColorScrollbarLayer;
|
| +
|
| +namespace {
|
| +
|
| +cc::ScrollbarOrientation ConvertOrientation(
|
| + WebKit::WebScrollbar::Orientation orientation) {
|
| + return orientation == WebKit::WebScrollbar::Horizontal ? cc::HORIZONTAL
|
| + : cc::VERTICAL;
|
| +}
|
| +
|
| +const int kSolidColorScrollbarThumbThickness = 3;
|
| +const SkColor kSolidColorScrollbarColor = SkColorSetARGB(128, 128, 128, 128);
|
| +
|
| +scoped_refptr<cc::Layer> CreateScrollbarLayer(
|
| + WebKit::WebScrollbar* scrollbar,
|
| + WebKit::WebScrollbarThemePainter painter,
|
| + WebKit::WebScrollbarThemeGeometry* geometry) {
|
| + if (cc::switches::AreOverlayScrollbarsEnabled()) {
|
| + return SolidColorScrollbarLayer::Create(
|
| + ConvertOrientation(scrollbar->orientation()),
|
| + kSolidColorScrollbarThumbThickness,
|
| + kSolidColorScrollbarColor,
|
| + 0);
|
| + } else {
|
| + return ScrollbarLayer::Create(
|
| + scoped_ptr<cc::Scrollbar>(new webkit::ScrollbarImpl(
|
| + make_scoped_ptr(scrollbar), painter, make_scoped_ptr(geometry))),
|
| + 0);
|
| + }
|
| +}
|
| +
|
| +} // namespace
|
|
|
| namespace webkit {
|
|
|
| @@ -17,11 +52,8 @@ WebScrollbarLayerImpl::WebScrollbarLayerImpl(
|
| WebKit::WebScrollbar* scrollbar,
|
| WebKit::WebScrollbarThemePainter painter,
|
| WebKit::WebScrollbarThemeGeometry* geometry)
|
| - : layer_(new WebLayerImpl(ScrollbarLayer::Create(
|
| - scoped_ptr<cc::Scrollbar>(new ScrollbarImpl(
|
| - make_scoped_ptr(scrollbar),
|
| - painter,
|
| - make_scoped_ptr(geometry))).Pass(), 0))) {}
|
| + : layer_(new WebLayerImpl(
|
| + CreateScrollbarLayer(scrollbar, painter, geometry))) {}
|
|
|
| WebScrollbarLayerImpl::~WebScrollbarLayerImpl() {}
|
|
|
| @@ -29,7 +61,7 @@ WebKit::WebLayer* WebScrollbarLayerImpl::layer() { return layer_.get(); }
|
|
|
| void WebScrollbarLayerImpl::setScrollLayer(WebKit::WebLayer* layer) {
|
| int id = layer ? static_cast<WebLayerImpl*>(layer)->layer()->id() : 0;
|
| - static_cast<ScrollbarLayer*>(layer_->layer())->SetScrollLayerId(id);
|
| + layer_->layer()->ToScrollbarLayer()->SetScrollLayerId(id);
|
| }
|
|
|
| } // namespace webkit
|
|
|