Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(177)

Side by Side Diff: cc/blink/web_scrollbar_layer_impl.cc

Issue 2728253002: Remove indirection: setup scrollbar scroll layers in the scrollbar constructor (Closed)
Patch Set: Ensure detachScrollbarLayer is called in scrollableAreaScrollbarLayerDidChange Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/blink/web_scrollbar_layer_impl.h" 5 #include "cc/blink/web_scrollbar_layer_impl.h"
6 6
7 #include <utility> 7 #include <utility>
8 8
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "cc/blink/scrollbar_impl.h" 10 #include "cc/blink/scrollbar_impl.h"
(...skipping 16 matching lines...) Expand all
27 : cc::VERTICAL; 27 : cc::VERTICAL;
28 } 28 }
29 29
30 } // namespace 30 } // namespace
31 31
32 namespace cc_blink { 32 namespace cc_blink {
33 33
34 WebScrollbarLayerImpl::WebScrollbarLayerImpl( 34 WebScrollbarLayerImpl::WebScrollbarLayerImpl(
35 std::unique_ptr<blink::WebScrollbar> scrollbar, 35 std::unique_ptr<blink::WebScrollbar> scrollbar,
36 blink::WebScrollbarThemePainter painter, 36 blink::WebScrollbarThemePainter painter,
37 std::unique_ptr<blink::WebScrollbarThemeGeometry> geometry) 37 std::unique_ptr<blink::WebScrollbarThemeGeometry> geometry,
38 blink::WebLayer* scroll_layer)
38 : layer_(new WebLayerImpl(PaintedScrollbarLayer::Create( 39 : layer_(new WebLayerImpl(PaintedScrollbarLayer::Create(
39 base::MakeUnique<ScrollbarImpl>(std::move(scrollbar), 40 base::MakeUnique<ScrollbarImpl>(std::move(scrollbar),
40 painter, 41 painter,
41 std::move(geometry)), 42 std::move(geometry)),
42 0))) {} 43 static_cast<WebLayerImpl*>(scroll_layer)->layer()->id()))) {}
43 44
44 WebScrollbarLayerImpl::WebScrollbarLayerImpl( 45 WebScrollbarLayerImpl::WebScrollbarLayerImpl(
45 std::unique_ptr<blink::WebScrollbar> scrollbar, 46 std::unique_ptr<blink::WebScrollbar> scrollbar,
46 blink::WebScrollbarThemePainter painter, 47 blink::WebScrollbarThemePainter painter,
47 std::unique_ptr<blink::WebScrollbarThemeGeometry> geometry, 48 std::unique_ptr<blink::WebScrollbarThemeGeometry> geometry,
48 bool) 49 bool,
bokan 2017/03/06 14:36:34 Whoops, this bool argument is used solely to pick
pdr. 2017/03/06 19:00:24 Sure, removed.
50 blink::WebLayer* scroll_layer)
49 : layer_(new WebLayerImpl(PaintedOverlayScrollbarLayer::Create( 51 : layer_(new WebLayerImpl(PaintedOverlayScrollbarLayer::Create(
50 base::MakeUnique<ScrollbarImpl>(std::move(scrollbar), 52 base::MakeUnique<ScrollbarImpl>(std::move(scrollbar),
51 painter, 53 painter,
52 std::move(geometry)), 54 std::move(geometry)),
53 0))) {} 55 static_cast<WebLayerImpl*>(scroll_layer)->layer()->id()))) {}
54 56
55 WebScrollbarLayerImpl::WebScrollbarLayerImpl( 57 WebScrollbarLayerImpl::WebScrollbarLayerImpl(
56 blink::WebScrollbar::Orientation orientation, 58 blink::WebScrollbar::Orientation orientation,
57 int thumb_thickness, 59 int thumb_thickness,
58 int track_start, 60 int track_start,
59 bool is_left_side_vertical_scrollbar) 61 bool is_left_side_vertical_scrollbar,
60 : layer_(new WebLayerImpl( 62 blink::WebLayer* scroll_layer)
61 SolidColorScrollbarLayer::Create(ConvertOrientation(orientation), 63 : layer_(new WebLayerImpl(SolidColorScrollbarLayer::Create(
62 thumb_thickness, 64 ConvertOrientation(orientation),
63 track_start, 65 thumb_thickness,
64 is_left_side_vertical_scrollbar, 66 track_start,
65 0))) {} 67 is_left_side_vertical_scrollbar,
68 static_cast<WebLayerImpl*>(scroll_layer)->layer()->id()))) {}
66 69
67 WebScrollbarLayerImpl::~WebScrollbarLayerImpl() { 70 WebScrollbarLayerImpl::~WebScrollbarLayerImpl() {
68 } 71 }
69 72
70 blink::WebLayer* WebScrollbarLayerImpl::layer() { 73 blink::WebLayer* WebScrollbarLayerImpl::layer() {
71 return layer_.get(); 74 return layer_.get();
72 } 75 }
73 76
74 void WebScrollbarLayerImpl::setScrollLayer(blink::WebLayer* layer) {
75 cc::Layer* scroll_layer =
76 layer ? static_cast<WebLayerImpl*>(layer)->layer() : 0;
77 layer_->layer()->ToScrollbarLayer()->SetScrollLayer(
78 scroll_layer ? scroll_layer->id() : cc::Layer::INVALID_ID);
79 }
80
81 } // namespace cc_blink 77 } // namespace cc_blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698