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

Side by Side Diff: cc/layer_tree_host_unittest_scroll.cc

Issue 12774006: cc: Chromify Layer and LayerImpl classes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: MoreAndroidCompilings Created 7 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 | Annotate | Revision Log
« no previous file with comments | « cc/layer_tree_host_unittest_occlusion.cc ('k') | cc/layer_tree_impl.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 2012 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/layer_tree_host.h" 5 #include "cc/layer_tree_host.h"
6 6
7 #include "cc/content_layer.h" 7 #include "cc/content_layer.h"
8 #include "cc/layer.h" 8 #include "cc/layer.h"
9 #include "cc/layer_impl.h" 9 #include "cc/layer_impl.h"
10 #include "cc/layer_tree_impl.h" 10 #include "cc/layer_tree_impl.h"
(...skipping 13 matching lines...) Expand all
24 class LayerTreeHostScrollTestScrollSimple : public LayerTreeHostScrollTest { 24 class LayerTreeHostScrollTestScrollSimple : public LayerTreeHostScrollTest {
25 public: 25 public:
26 LayerTreeHostScrollTestScrollSimple() 26 LayerTreeHostScrollTestScrollSimple()
27 : initial_scroll_(10, 20), 27 : initial_scroll_(10, 20),
28 second_scroll_(40, 5), 28 second_scroll_(40, 5),
29 scroll_amount_(2, -1), 29 scroll_amount_(2, -1),
30 num_scrolls_(0) { 30 num_scrolls_(0) {
31 } 31 }
32 32
33 virtual void beginTest() OVERRIDE { 33 virtual void beginTest() OVERRIDE {
34 m_layerTreeHost->rootLayer()->setScrollable(true); 34 m_layerTreeHost->rootLayer()->SetScrollable(true);
35 m_layerTreeHost->rootLayer()->setScrollOffset(initial_scroll_); 35 m_layerTreeHost->rootLayer()->SetScrollOffset(initial_scroll_);
36 postSetNeedsCommitToMainThread(); 36 postSetNeedsCommitToMainThread();
37 } 37 }
38 38
39 virtual void layout() OVERRIDE { 39 virtual void layout() OVERRIDE {
40 Layer* root = m_layerTreeHost->rootLayer(); 40 Layer* root = m_layerTreeHost->rootLayer();
41 if (!m_layerTreeHost->commitNumber()) 41 if (!m_layerTreeHost->commitNumber())
42 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_); 42 EXPECT_VECTOR_EQ(initial_scroll_, root->scroll_offset());
43 else { 43 else {
44 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_ + scroll_amount_); 44 EXPECT_VECTOR_EQ(initial_scroll_ + scroll_amount_, root->scroll_offset());
45 45
46 // Pretend like Javascript updated the scroll position itself. 46 // Pretend like Javascript updated the scroll position itself.
47 root->setScrollOffset(second_scroll_); 47 root->SetScrollOffset(second_scroll_);
48 } 48 }
49 } 49 }
50 50
51 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { 51 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE {
52 LayerImpl* root = impl->rootLayer(); 52 LayerImpl* root = impl->rootLayer();
53 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d()); 53 EXPECT_VECTOR_EQ(gfx::Vector2d(), root->scroll_delta());
54 54
55 root->setScrollable(true); 55 root->SetScrollable(true);
56 root->setMaxScrollOffset(gfx::Vector2d(100, 100)); 56 root->SetMaxScrollOffset(gfx::Vector2d(100, 100));
57 root->scrollBy(scroll_amount_); 57 root->ScrollBy(scroll_amount_);
58 58
59 switch (impl->activeTree()->source_frame_number()) { 59 switch (impl->activeTree()->source_frame_number()) {
60 case 0: 60 case 0:
61 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_); 61 EXPECT_VECTOR_EQ(initial_scroll_, root->scroll_offset());
62 EXPECT_VECTOR_EQ(root->scrollDelta(), scroll_amount_); 62 EXPECT_VECTOR_EQ(scroll_amount_, root->scroll_delta());
63 postSetNeedsCommitToMainThread(); 63 postSetNeedsCommitToMainThread();
64 break; 64 break;
65 case 1: 65 case 1:
66 EXPECT_VECTOR_EQ(root->scrollOffset(), second_scroll_); 66 EXPECT_VECTOR_EQ(root->scroll_offset(), second_scroll_);
67 EXPECT_VECTOR_EQ(root->scrollDelta(), scroll_amount_); 67 EXPECT_VECTOR_EQ(root->scroll_delta(), scroll_amount_);
68 endTest(); 68 endTest();
69 break; 69 break;
70 } 70 }
71 } 71 }
72 72
73 virtual void applyScrollAndScale( 73 virtual void applyScrollAndScale(
74 gfx::Vector2d scroll_delta, float scale) OVERRIDE { 74 gfx::Vector2d scroll_delta, float scale) OVERRIDE {
75 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset(); 75 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scroll_offset();
76 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scroll_delta); 76 m_layerTreeHost->rootLayer()->SetScrollOffset(offset + scroll_delta);
77 num_scrolls_++; 77 num_scrolls_++;
78 } 78 }
79 79
80 virtual void afterTest() OVERRIDE { 80 virtual void afterTest() OVERRIDE {
81 EXPECT_EQ(1, num_scrolls_); 81 EXPECT_EQ(1, num_scrolls_);
82 } 82 }
83 83
84 private: 84 private:
85 gfx::Vector2d initial_scroll_; 85 gfx::Vector2d initial_scroll_;
86 gfx::Vector2d second_scroll_; 86 gfx::Vector2d second_scroll_;
87 gfx::Vector2d scroll_amount_; 87 gfx::Vector2d scroll_amount_;
88 int num_scrolls_; 88 int num_scrolls_;
89 }; 89 };
90 90
91 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollSimple) 91 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollSimple)
92 92
93 class LayerTreeHostScrollTestScrollMultipleRedraw : 93 class LayerTreeHostScrollTestScrollMultipleRedraw :
94 public LayerTreeHostScrollTest { 94 public LayerTreeHostScrollTest {
95 public: 95 public:
96 LayerTreeHostScrollTestScrollMultipleRedraw() 96 LayerTreeHostScrollTestScrollMultipleRedraw()
97 : initial_scroll_(40, 10), 97 : initial_scroll_(40, 10),
98 scroll_amount_(-3, 17), 98 scroll_amount_(-3, 17),
99 num_scrolls_(0) { 99 num_scrolls_(0) {
100 } 100 }
101 101
102 virtual void beginTest() OVERRIDE { 102 virtual void beginTest() OVERRIDE {
103 m_layerTreeHost->rootLayer()->setScrollable(true); 103 m_layerTreeHost->rootLayer()->SetScrollable(true);
104 m_layerTreeHost->rootLayer()->setScrollOffset(initial_scroll_); 104 m_layerTreeHost->rootLayer()->SetScrollOffset(initial_scroll_);
105 postSetNeedsCommitToMainThread(); 105 postSetNeedsCommitToMainThread();
106 } 106 }
107 107
108 virtual void beginCommitOnThread(LayerTreeHostImpl* impl) OVERRIDE { 108 virtual void beginCommitOnThread(LayerTreeHostImpl* impl) OVERRIDE {
109 Layer* root = m_layerTreeHost->rootLayer(); 109 Layer* root = m_layerTreeHost->rootLayer();
110 switch (m_layerTreeHost->commitNumber()) { 110 switch (m_layerTreeHost->commitNumber()) {
111 case 0: 111 case 0:
112 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_); 112 EXPECT_VECTOR_EQ(root->scroll_offset(), initial_scroll_);
113 break; 113 break;
114 case 1: 114 case 1:
115 EXPECT_VECTOR_EQ( 115 EXPECT_VECTOR_EQ(
116 root->scrollOffset(), 116 root->scroll_offset(),
117 initial_scroll_ + scroll_amount_ + scroll_amount_); 117 initial_scroll_ + scroll_amount_ + scroll_amount_);
118 case 2: 118 case 2:
119 EXPECT_VECTOR_EQ( 119 EXPECT_VECTOR_EQ(
120 root->scrollOffset(), 120 root->scroll_offset(),
121 initial_scroll_ + scroll_amount_ + scroll_amount_); 121 initial_scroll_ + scroll_amount_ + scroll_amount_);
122 break; 122 break;
123 } 123 }
124 } 124 }
125 125
126 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { 126 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE {
127 LayerImpl* root = impl->rootLayer(); 127 LayerImpl* root = impl->rootLayer();
128 root->setScrollable(true); 128 root->SetScrollable(true);
129 root->setMaxScrollOffset(gfx::Vector2d(100, 100)); 129 root->SetMaxScrollOffset(gfx::Vector2d(100, 100));
130 130
131 if (impl->activeTree()->source_frame_number() == 0 && 131 if (impl->activeTree()->source_frame_number() == 0 &&
132 impl->sourceAnimationFrameNumber() == 1) { 132 impl->sourceAnimationFrameNumber() == 1) {
133 // First draw after first commit. 133 // First draw after first commit.
134 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d()); 134 EXPECT_VECTOR_EQ(root->scroll_delta(), gfx::Vector2d());
135 root->scrollBy(scroll_amount_); 135 root->ScrollBy(scroll_amount_);
136 EXPECT_VECTOR_EQ(root->scrollDelta(), scroll_amount_); 136 EXPECT_VECTOR_EQ(root->scroll_delta(), scroll_amount_);
137 137
138 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_); 138 EXPECT_VECTOR_EQ(root->scroll_offset(), initial_scroll_);
139 postSetNeedsRedrawToMainThread(); 139 postSetNeedsRedrawToMainThread();
140 } else if (impl->activeTree()->source_frame_number() == 0 && 140 } else if (impl->activeTree()->source_frame_number() == 0 &&
141 impl->sourceAnimationFrameNumber() == 2) { 141 impl->sourceAnimationFrameNumber() == 2) {
142 // Second draw after first commit. 142 // Second draw after first commit.
143 EXPECT_EQ(root->scrollDelta(), scroll_amount_); 143 EXPECT_EQ(root->scroll_delta(), scroll_amount_);
144 root->scrollBy(scroll_amount_); 144 root->ScrollBy(scroll_amount_);
145 EXPECT_VECTOR_EQ(root->scrollDelta(), scroll_amount_ + scroll_amount_); 145 EXPECT_VECTOR_EQ(root->scroll_delta(), scroll_amount_ + scroll_amount_);
146 146
147 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_); 147 EXPECT_VECTOR_EQ(root->scroll_offset(), initial_scroll_);
148 postSetNeedsCommitToMainThread(); 148 postSetNeedsCommitToMainThread();
149 } else if (impl->activeTree()->source_frame_number() == 1) { 149 } else if (impl->activeTree()->source_frame_number() == 1) {
150 // Third or later draw after second commit. 150 // Third or later draw after second commit.
151 EXPECT_GE(impl->sourceAnimationFrameNumber(), 3); 151 EXPECT_GE(impl->sourceAnimationFrameNumber(), 3);
152 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d()); 152 EXPECT_VECTOR_EQ(root->scroll_delta(), gfx::Vector2d());
153 EXPECT_VECTOR_EQ( 153 EXPECT_VECTOR_EQ(
154 root->scrollOffset(), 154 root->scroll_offset(),
155 initial_scroll_ + scroll_amount_ + scroll_amount_); 155 initial_scroll_ + scroll_amount_ + scroll_amount_);
156 endTest(); 156 endTest();
157 } 157 }
158 } 158 }
159 159
160 virtual void applyScrollAndScale( 160 virtual void applyScrollAndScale(
161 gfx::Vector2d scroll_delta, float scale) OVERRIDE { 161 gfx::Vector2d scroll_delta, float scale) OVERRIDE {
162 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset(); 162 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scroll_offset();
163 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scroll_delta); 163 m_layerTreeHost->rootLayer()->SetScrollOffset(offset + scroll_delta);
164 num_scrolls_++; 164 num_scrolls_++;
165 } 165 }
166 166
167 virtual void afterTest() OVERRIDE { 167 virtual void afterTest() OVERRIDE {
168 EXPECT_EQ(1, num_scrolls_); 168 EXPECT_EQ(1, num_scrolls_);
169 } 169 }
170 private: 170 private:
171 gfx::Vector2d initial_scroll_; 171 gfx::Vector2d initial_scroll_;
172 gfx::Vector2d scroll_amount_; 172 gfx::Vector2d scroll_amount_;
173 int num_scrolls_; 173 int num_scrolls_;
174 }; 174 };
175 175
176 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollMultipleRedraw) 176 MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollMultipleRedraw)
177 177
178 class LayerTreeHostScrollTestFractionalScroll : public LayerTreeHostScrollTest { 178 class LayerTreeHostScrollTestFractionalScroll : public LayerTreeHostScrollTest {
179 public: 179 public:
180 LayerTreeHostScrollTestFractionalScroll() 180 LayerTreeHostScrollTestFractionalScroll()
181 : scroll_amount_(1.75, 0) { 181 : scroll_amount_(1.75, 0) {
182 } 182 }
183 183
184 virtual void beginTest() OVERRIDE { 184 virtual void beginTest() OVERRIDE {
185 m_layerTreeHost->rootLayer()->setScrollable(true); 185 m_layerTreeHost->rootLayer()->SetScrollable(true);
186 postSetNeedsCommitToMainThread(); 186 postSetNeedsCommitToMainThread();
187 } 187 }
188 188
189 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { 189 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE {
190 LayerImpl* root = impl->rootLayer(); 190 LayerImpl* root = impl->rootLayer();
191 root->setMaxScrollOffset(gfx::Vector2d(100, 100)); 191 root->SetMaxScrollOffset(gfx::Vector2d(100, 100));
192 192
193 // Check that a fractional scroll delta is correctly accumulated over 193 // Check that a fractional scroll delta is correctly accumulated over
194 // multiple commits. 194 // multiple commits.
195 switch (impl->activeTree()->source_frame_number()) { 195 switch (impl->activeTree()->source_frame_number()) {
196 case 0: 196 case 0:
197 EXPECT_VECTOR_EQ(root->scrollOffset(), gfx::Vector2d(0, 0)); 197 EXPECT_VECTOR_EQ(root->scroll_offset(), gfx::Vector2d(0, 0));
198 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d(0, 0)); 198 EXPECT_VECTOR_EQ(root->scroll_delta(), gfx::Vector2d(0, 0));
199 postSetNeedsCommitToMainThread(); 199 postSetNeedsCommitToMainThread();
200 break; 200 break;
201 case 1: 201 case 1:
202 EXPECT_VECTOR_EQ( 202 EXPECT_VECTOR_EQ(
203 root->scrollOffset(), 203 root->scroll_offset(),
204 gfx::ToFlooredVector2d(scroll_amount_)); 204 gfx::ToFlooredVector2d(scroll_amount_));
205 EXPECT_VECTOR_EQ( 205 EXPECT_VECTOR_EQ(
206 root->scrollDelta(), 206 root->scroll_delta(),
207 gfx::Vector2dF(fmod(scroll_amount_.x(), 1.0f), 0.0f)); 207 gfx::Vector2dF(fmod(scroll_amount_.x(), 1.0f), 0.0f));
208 postSetNeedsCommitToMainThread(); 208 postSetNeedsCommitToMainThread();
209 break; 209 break;
210 case 2: 210 case 2:
211 EXPECT_VECTOR_EQ( 211 EXPECT_VECTOR_EQ(
212 root->scrollOffset(), 212 root->scroll_offset(),
213 gfx::ToFlooredVector2d(scroll_amount_ + scroll_amount_)); 213 gfx::ToFlooredVector2d(scroll_amount_ + scroll_amount_));
214 EXPECT_VECTOR_EQ( 214 EXPECT_VECTOR_EQ(
215 root->scrollDelta(), 215 root->scroll_delta(),
216 gfx::Vector2dF(fmod(2.0f * scroll_amount_.x(), 1.0f), 0.0f)); 216 gfx::Vector2dF(fmod(2.0f * scroll_amount_.x(), 1.0f), 0.0f));
217 endTest(); 217 endTest();
218 break; 218 break;
219 } 219 }
220 root->scrollBy(scroll_amount_); 220 root->ScrollBy(scroll_amount_);
221 } 221 }
222 222
223 virtual void applyScrollAndScale( 223 virtual void applyScrollAndScale(
224 gfx::Vector2d scroll_delta, float scale) OVERRIDE { 224 gfx::Vector2d scroll_delta, float scale) OVERRIDE {
225 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset(); 225 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scroll_offset();
226 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scroll_delta); 226 m_layerTreeHost->rootLayer()->SetScrollOffset(offset + scroll_delta);
227 } 227 }
228 228
229 virtual void afterTest() OVERRIDE {} 229 virtual void afterTest() OVERRIDE {}
230 230
231 private: 231 private:
232 gfx::Vector2dF scroll_amount_; 232 gfx::Vector2dF scroll_amount_;
233 }; 233 };
234 234
235 TEST_F(LayerTreeHostScrollTestFractionalScroll, runMultiThread) 235 TEST_F(LayerTreeHostScrollTestFractionalScroll, runMultiThread)
236 { 236 {
237 runTest(true); 237 runTest(true);
238 } 238 }
239 239
240 class LayerTreeHostScrollTestCaseWithChild : 240 class LayerTreeHostScrollTestCaseWithChild :
241 public LayerTreeHostScrollTest, 241 public LayerTreeHostScrollTest,
242 public WebKit::WebLayerScrollClient { 242 public WebKit::WebLayerScrollClient {
243 public: 243 public:
244 LayerTreeHostScrollTestCaseWithChild() 244 LayerTreeHostScrollTestCaseWithChild()
245 : initial_offset_(10, 20), 245 : initial_offset_(10, 20),
246 javascript_scroll_(40, 5), 246 javascript_scroll_(40, 5),
247 scroll_amount_(2, -1), 247 scroll_amount_(2, -1),
248 num_scrolls_(0) { 248 num_scrolls_(0) {
249 } 249 }
250 250
251 virtual void setupTree() OVERRIDE { 251 virtual void setupTree() OVERRIDE {
252 m_layerTreeHost->setDeviceScaleFactor(device_scale_factor_); 252 m_layerTreeHost->setDeviceScaleFactor(device_scale_factor_);
253 253
254 scoped_refptr<Layer> root_layer = Layer::create(); 254 scoped_refptr<Layer> root_layer = Layer::Create();
255 root_layer->setBounds(gfx::Size(10, 10)); 255 root_layer->SetBounds(gfx::Size(10, 10));
256 256
257 root_scroll_layer_ = ContentLayer::create(&fake_content_layer_client_); 257 root_scroll_layer_ = ContentLayer::Create(&fake_content_layer_client_);
258 root_scroll_layer_->setBounds(gfx::Size(110, 110)); 258 root_scroll_layer_->SetBounds(gfx::Size(110, 110));
259 259
260 root_scroll_layer_->setPosition(gfx::Point(0, 0)); 260 root_scroll_layer_->SetPosition(gfx::Point(0, 0));
261 root_scroll_layer_->setAnchorPoint(gfx::PointF()); 261 root_scroll_layer_->SetAnchorPoint(gfx::PointF());
262 262
263 root_scroll_layer_->setIsDrawable(true); 263 root_scroll_layer_->SetIsDrawable(true);
264 root_scroll_layer_->setScrollable(true); 264 root_scroll_layer_->SetScrollable(true);
265 root_scroll_layer_->setMaxScrollOffset(gfx::Vector2d(100, 100)); 265 root_scroll_layer_->SetMaxScrollOffset(gfx::Vector2d(100, 100));
266 root_layer->addChild(root_scroll_layer_); 266 root_layer->AddChild(root_scroll_layer_);
267 267
268 child_layer_ = ContentLayer::create(&fake_content_layer_client_); 268 child_layer_ = ContentLayer::Create(&fake_content_layer_client_);
269 child_layer_->setLayerScrollClient(this); 269 child_layer_->set_layer_scroll_client(this);
270 child_layer_->setBounds(gfx::Size(110, 110)); 270 child_layer_->SetBounds(gfx::Size(110, 110));
271 271
272 // Scrolls on the child layer will happen at 5, 5. If they are treated 272 // Scrolls on the child layer will happen at 5, 5. If they are treated
273 // like device pixels, and device scale factor is 2, then they will 273 // like device pixels, and device scale factor is 2, then they will
274 // be considered at 2.5, 2.5 in logical pixels, and will miss this layer. 274 // be considered at 2.5, 2.5 in logical pixels, and will miss this layer.
275 child_layer_->setPosition(gfx::Point(5, 5)); 275 child_layer_->SetPosition(gfx::Point(5, 5));
276 child_layer_->setAnchorPoint(gfx::PointF()); 276 child_layer_->SetAnchorPoint(gfx::PointF());
277 277
278 child_layer_->setIsDrawable(true); 278 child_layer_->SetIsDrawable(true);
279 child_layer_->setScrollable(true); 279 child_layer_->SetScrollable(true);
280 child_layer_->setMaxScrollOffset(gfx::Vector2d(100, 100)); 280 child_layer_->SetMaxScrollOffset(gfx::Vector2d(100, 100));
281 root_scroll_layer_->addChild(child_layer_); 281 root_scroll_layer_->AddChild(child_layer_);
282 282
283 if (scroll_child_layer_) { 283 if (scroll_child_layer_) {
284 expected_scroll_layer_ = child_layer_; 284 expected_scroll_layer_ = child_layer_;
285 expected_no_scroll_layer_ = root_scroll_layer_; 285 expected_no_scroll_layer_ = root_scroll_layer_;
286 } else { 286 } else {
287 expected_scroll_layer_ = root_scroll_layer_; 287 expected_scroll_layer_ = root_scroll_layer_;
288 expected_no_scroll_layer_ = child_layer_; 288 expected_no_scroll_layer_ = child_layer_;
289 } 289 }
290 290
291 expected_scroll_layer_->setScrollOffset(initial_offset_); 291 expected_scroll_layer_->SetScrollOffset(initial_offset_);
292 292
293 m_layerTreeHost->setRootLayer(root_layer); 293 m_layerTreeHost->setRootLayer(root_layer);
294 LayerTreeHostScrollTest::setupTree(); 294 LayerTreeHostScrollTest::setupTree();
295 } 295 }
296 296
297 virtual void beginTest() OVERRIDE { 297 virtual void beginTest() OVERRIDE {
298 postSetNeedsCommitToMainThread(); 298 postSetNeedsCommitToMainThread();
299 } 299 }
300 300
301 virtual void didScroll() OVERRIDE { 301 virtual void didScroll() OVERRIDE {
302 final_scroll_offset_ = expected_scroll_layer_->scrollOffset(); 302 final_scroll_offset_ = expected_scroll_layer_->scroll_offset();
303 } 303 }
304 304
305 virtual void applyScrollAndScale( 305 virtual void applyScrollAndScale(
306 gfx::Vector2d scroll_delta, float scale) OVERRIDE { 306 gfx::Vector2d scroll_delta, float scale) OVERRIDE {
307 gfx::Vector2d offset = root_scroll_layer_->scrollOffset(); 307 gfx::Vector2d offset = root_scroll_layer_->scroll_offset();
308 root_scroll_layer_->setScrollOffset(offset + scroll_delta); 308 root_scroll_layer_->SetScrollOffset(offset + scroll_delta);
309 num_scrolls_++; 309 num_scrolls_++;
310 } 310 }
311 311
312 virtual void layout() OVERRIDE { 312 virtual void layout() OVERRIDE {
313 EXPECT_VECTOR_EQ( 313 EXPECT_VECTOR_EQ(
314 gfx::Vector2d(), expected_no_scroll_layer_->scrollOffset()); 314 gfx::Vector2d(), expected_no_scroll_layer_->scroll_offset());
315 315
316 switch (m_layerTreeHost->commitNumber()) { 316 switch (m_layerTreeHost->commitNumber()) {
317 case 0: 317 case 0:
318 EXPECT_VECTOR_EQ( 318 EXPECT_VECTOR_EQ(
319 initial_offset_, 319 initial_offset_,
320 expected_scroll_layer_->scrollOffset()); 320 expected_scroll_layer_->scroll_offset());
321 break; 321 break;
322 case 1: 322 case 1:
323 EXPECT_VECTOR_EQ( 323 EXPECT_VECTOR_EQ(
324 initial_offset_ + scroll_amount_, 324 initial_offset_ + scroll_amount_,
325 expected_scroll_layer_->scrollOffset()); 325 expected_scroll_layer_->scroll_offset());
326 326
327 // Pretend like Javascript updated the scroll position itself. 327 // Pretend like Javascript updated the scroll position itself.
328 expected_scroll_layer_->setScrollOffset(javascript_scroll_); 328 expected_scroll_layer_->SetScrollOffset(javascript_scroll_);
329 break; 329 break;
330 case 2: 330 case 2:
331 EXPECT_VECTOR_EQ( 331 EXPECT_VECTOR_EQ(
332 javascript_scroll_ + scroll_amount_, 332 javascript_scroll_ + scroll_amount_,
333 expected_scroll_layer_->scrollOffset()); 333 expected_scroll_layer_->scroll_offset());
334 break; 334 break;
335 } 335 }
336 } 336 }
337 337
338 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE { 338 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE {
339 LayerImpl* root_impl = impl->rootLayer(); 339 LayerImpl* root_impl = impl->rootLayer();
340 LayerImpl* root_scroll_layer_impl = root_impl->children()[0]; 340 LayerImpl* root_scroll_layer_impl = root_impl->children()[0];
341 LayerImpl* child_layer_impl = root_scroll_layer_impl->children()[0]; 341 LayerImpl* child_layer_impl = root_scroll_layer_impl->children()[0];
342 342
343 LayerImpl* expected_scroll_layer_impl = NULL; 343 LayerImpl* expected_scroll_layer_impl = NULL;
344 LayerImpl* expected_no_scroll_layer_impl = NULL; 344 LayerImpl* expected_no_scroll_layer_impl = NULL;
345 if (scroll_child_layer_) { 345 if (scroll_child_layer_) {
346 expected_scroll_layer_impl = child_layer_impl; 346 expected_scroll_layer_impl = child_layer_impl;
347 expected_no_scroll_layer_impl = root_scroll_layer_impl; 347 expected_no_scroll_layer_impl = root_scroll_layer_impl;
348 } else { 348 } else {
349 expected_scroll_layer_impl = root_scroll_layer_impl; 349 expected_scroll_layer_impl = root_scroll_layer_impl;
350 expected_no_scroll_layer_impl = child_layer_impl; 350 expected_no_scroll_layer_impl = child_layer_impl;
351 } 351 }
352 352
353 EXPECT_VECTOR_EQ(gfx::Vector2d(), root_impl->scrollDelta()); 353 EXPECT_VECTOR_EQ(gfx::Vector2d(), root_impl->scroll_delta());
354 EXPECT_VECTOR_EQ( 354 EXPECT_VECTOR_EQ(
355 gfx::Vector2d(), 355 gfx::Vector2d(),
356 expected_no_scroll_layer_impl->scrollDelta()); 356 expected_no_scroll_layer_impl->scroll_delta());
357 357
358 // Ensure device scale factor is affecting the layers. 358 // Ensure device scale factor is affecting the layers.
359 gfx::Size expected_content_bounds = gfx::ToCeiledSize( 359 gfx::Size expected_content_bounds = gfx::ToCeiledSize(
360 gfx::ScaleSize(root_scroll_layer_impl->bounds(), device_scale_factor_)); 360 gfx::ScaleSize(root_scroll_layer_impl->bounds(), device_scale_factor_));
361 EXPECT_SIZE_EQ( 361 EXPECT_SIZE_EQ(
362 expected_content_bounds, 362 expected_content_bounds,
363 root_scroll_layer_->contentBounds()); 363 root_scroll_layer_->content_bounds());
364 364
365 expected_content_bounds = gfx::ToCeiledSize( 365 expected_content_bounds = gfx::ToCeiledSize(
366 gfx::ScaleSize(child_layer_impl->bounds(), device_scale_factor_)); 366 gfx::ScaleSize(child_layer_impl->bounds(), device_scale_factor_));
367 EXPECT_SIZE_EQ(expected_content_bounds, child_layer_->contentBounds()); 367 EXPECT_SIZE_EQ(expected_content_bounds, child_layer_->content_bounds());
368 368
369 switch (impl->activeTree()->source_frame_number()) { 369 switch (impl->activeTree()->source_frame_number()) {
370 case 0: { 370 case 0: {
371 // Gesture scroll on impl thread. 371 // Gesture scroll on impl thread.
372 InputHandlerClient::ScrollStatus status = impl->scrollBegin( 372 InputHandlerClient::ScrollStatus status = impl->scrollBegin(
373 gfx::ToCeiledPoint( 373 gfx::ToCeiledPoint(
374 expected_scroll_layer_impl->position() + 374 expected_scroll_layer_impl->position() +
375 gfx::Vector2dF(0.5f, 0.5f)), 375 gfx::Vector2dF(0.5f, 0.5f)),
376 InputHandlerClient::Gesture); 376 InputHandlerClient::Gesture);
377 EXPECT_EQ(InputHandlerClient::ScrollStarted, status); 377 EXPECT_EQ(InputHandlerClient::ScrollStarted, status);
378 impl->scrollBy(gfx::Point(), scroll_amount_); 378 impl->scrollBy(gfx::Point(), scroll_amount_);
379 impl->scrollEnd(); 379 impl->scrollEnd();
380 380
381 // Check the scroll is applied as a delta. 381 // Check the scroll is applied as a delta.
382 EXPECT_VECTOR_EQ( 382 EXPECT_VECTOR_EQ(
383 initial_offset_, 383 initial_offset_,
384 expected_scroll_layer_impl->scrollOffset()); 384 expected_scroll_layer_impl->scroll_offset());
385 EXPECT_VECTOR_EQ( 385 EXPECT_VECTOR_EQ(
386 scroll_amount_, 386 scroll_amount_,
387 expected_scroll_layer_impl->scrollDelta()); 387 expected_scroll_layer_impl->scroll_delta());
388 break; 388 break;
389 } 389 }
390 case 1: { 390 case 1: {
391 // Wheel scroll on impl thread. 391 // Wheel scroll on impl thread.
392 InputHandlerClient::ScrollStatus status = impl->scrollBegin( 392 InputHandlerClient::ScrollStatus status = impl->scrollBegin(
393 gfx::ToCeiledPoint( 393 gfx::ToCeiledPoint(
394 expected_scroll_layer_impl->position() + 394 expected_scroll_layer_impl->position() +
395 gfx::Vector2dF(0.5f, 0.5f)), 395 gfx::Vector2dF(0.5f, 0.5f)),
396 InputHandlerClient::Wheel); 396 InputHandlerClient::Wheel);
397 EXPECT_EQ(InputHandlerClient::ScrollStarted, status); 397 EXPECT_EQ(InputHandlerClient::ScrollStarted, status);
398 impl->scrollBy(gfx::Point(), scroll_amount_); 398 impl->scrollBy(gfx::Point(), scroll_amount_);
399 impl->scrollEnd(); 399 impl->scrollEnd();
400 400
401 // Check the scroll is applied as a delta. 401 // Check the scroll is applied as a delta.
402 EXPECT_VECTOR_EQ( 402 EXPECT_VECTOR_EQ(
403 javascript_scroll_, 403 javascript_scroll_,
404 expected_scroll_layer_impl->scrollOffset()); 404 expected_scroll_layer_impl->scroll_offset());
405 EXPECT_VECTOR_EQ( 405 EXPECT_VECTOR_EQ(
406 scroll_amount_, 406 scroll_amount_,
407 expected_scroll_layer_impl->scrollDelta()); 407 expected_scroll_layer_impl->scroll_delta());
408 break; 408 break;
409 } 409 }
410 case 2: 410 case 2:
411 411
412 EXPECT_VECTOR_EQ( 412 EXPECT_VECTOR_EQ(
413 javascript_scroll_ + scroll_amount_, 413 javascript_scroll_ + scroll_amount_,
414 expected_scroll_layer_impl->scrollOffset()); 414 expected_scroll_layer_impl->scroll_offset());
415 EXPECT_VECTOR_EQ( 415 EXPECT_VECTOR_EQ(
416 gfx::Vector2d(), 416 gfx::Vector2d(),
417 expected_scroll_layer_impl->scrollDelta()); 417 expected_scroll_layer_impl->scroll_delta());
418 418
419 endTest(); 419 endTest();
420 break; 420 break;
421 } 421 }
422 } 422 }
423 423
424 virtual void afterTest() OVERRIDE { 424 virtual void afterTest() OVERRIDE {
425 if (scroll_child_layer_) { 425 if (scroll_child_layer_) {
426 EXPECT_EQ(0, num_scrolls_); 426 EXPECT_EQ(0, num_scrolls_);
427 EXPECT_VECTOR_EQ( 427 EXPECT_VECTOR_EQ(
(...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after
508 ImplSidePaintingScrollTestSimple() 508 ImplSidePaintingScrollTestSimple()
509 : initial_scroll_(10, 20), 509 : initial_scroll_(10, 20),
510 main_thread_scroll_(40, 5), 510 main_thread_scroll_(40, 5),
511 impl_thread_scroll1_(2, -1), 511 impl_thread_scroll1_(2, -1),
512 impl_thread_scroll2_(-3, 10), 512 impl_thread_scroll2_(-3, 10),
513 num_scrolls_(0), 513 num_scrolls_(0),
514 can_activate_(true) { 514 can_activate_(true) {
515 } 515 }
516 516
517 virtual void beginTest() OVERRIDE { 517 virtual void beginTest() OVERRIDE {
518 m_layerTreeHost->rootLayer()->setScrollable(true); 518 m_layerTreeHost->rootLayer()->SetScrollable(true);
519 m_layerTreeHost->rootLayer()->setScrollOffset(initial_scroll_); 519 m_layerTreeHost->rootLayer()->SetScrollOffset(initial_scroll_);
520 postSetNeedsCommitToMainThread(); 520 postSetNeedsCommitToMainThread();
521 } 521 }
522 522
523 virtual void layout() OVERRIDE { 523 virtual void layout() OVERRIDE {
524 Layer* root = m_layerTreeHost->rootLayer(); 524 Layer* root = m_layerTreeHost->rootLayer();
525 if (!m_layerTreeHost->commitNumber()) 525 if (!m_layerTreeHost->commitNumber())
526 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_); 526 EXPECT_VECTOR_EQ(root->scroll_offset(), initial_scroll_);
527 else { 527 else {
528 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_ + impl_thread_scrol l1_); 528 EXPECT_VECTOR_EQ(root->scroll_offset(), initial_scroll_ + impl_thread_scro ll1_);
529 529
530 // Pretend like Javascript updated the scroll position itself with a 530 // Pretend like Javascript updated the scroll position itself with a
531 // change of main_thread_scroll. 531 // change of main_thread_scroll.
532 root->setScrollOffset(initial_scroll_ + main_thread_scroll_ + impl_thread_ scroll1_); 532 root->SetScrollOffset(initial_scroll_ + main_thread_scroll_ + impl_thread_ scroll1_);
533 } 533 }
534 } 534 }
535 535
536 virtual bool canActivatePendingTree() OVERRIDE { 536 virtual bool canActivatePendingTree() OVERRIDE {
537 return can_activate_; 537 return can_activate_;
538 } 538 }
539 539
540 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE { 540 virtual void commitCompleteOnThread(LayerTreeHostImpl* impl) OVERRIDE {
541 // We force a second draw here of the first commit before activating 541 // We force a second draw here of the first commit before activating
542 // the second commit. 542 // the second commit.
543 if (impl->activeTree()->source_frame_number() == 0) 543 if (impl->activeTree()->source_frame_number() == 0)
544 impl->setNeedsRedraw(); 544 impl->setNeedsRedraw();
545 } 545 }
546 546
547 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { 547 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE {
548 ImplSidePaintingScrollTest::drawLayersOnThread(impl); 548 ImplSidePaintingScrollTest::drawLayersOnThread(impl);
549 549
550 LayerImpl* root = impl->rootLayer(); 550 LayerImpl* root = impl->rootLayer();
551 root->setScrollable(true); 551 root->SetScrollable(true);
552 root->setMaxScrollOffset(gfx::Vector2d(100, 100)); 552 root->SetMaxScrollOffset(gfx::Vector2d(100, 100));
553 553
554 LayerImpl* pending_root = 554 LayerImpl* pending_root =
555 impl->activeTree()->FindPendingTreeLayerById(root->id()); 555 impl->activeTree()->FindPendingTreeLayerById(root->id());
556 556
557 switch (impl->activeTree()->source_frame_number()) { 557 switch (impl->activeTree()->source_frame_number()) {
558 case 0: 558 case 0:
559 if (!impl->pendingTree()) { 559 if (!impl->pendingTree()) {
560 can_activate_ = false; 560 can_activate_ = false;
561 EXPECT_VECTOR_EQ(root->scrollDelta(), gfx::Vector2d()); 561 EXPECT_VECTOR_EQ(root->scroll_delta(), gfx::Vector2d());
562 root->scrollBy(impl_thread_scroll1_); 562 root->ScrollBy(impl_thread_scroll1_);
563 563
564 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_); 564 EXPECT_VECTOR_EQ(root->scroll_offset(), initial_scroll_);
565 EXPECT_VECTOR_EQ(root->scrollDelta(), impl_thread_scroll1_); 565 EXPECT_VECTOR_EQ(root->scroll_delta(), impl_thread_scroll1_);
566 EXPECT_VECTOR_EQ(root->sentScrollDelta(), gfx::Vector2d()); 566 EXPECT_VECTOR_EQ(root->sent_scroll_delta(), gfx::Vector2d());
567 postSetNeedsCommitToMainThread(); 567 postSetNeedsCommitToMainThread();
568 568
569 // commitCompleteOnThread will trigger this function again 569 // commitCompleteOnThread will trigger this function again
570 // and cause us to take the else clause. 570 // and cause us to take the else clause.
571 } else { 571 } else {
572 can_activate_ = true; 572 can_activate_ = true;
573 ASSERT_TRUE(pending_root); 573 ASSERT_TRUE(pending_root);
574 EXPECT_EQ(impl->pendingTree()->source_frame_number(), 1); 574 EXPECT_EQ(impl->pendingTree()->source_frame_number(), 1);
575 575
576 root->scrollBy(impl_thread_scroll2_); 576 root->ScrollBy(impl_thread_scroll2_);
577 EXPECT_VECTOR_EQ(root->scrollOffset(), initial_scroll_); 577 EXPECT_VECTOR_EQ(root->scroll_offset(), initial_scroll_);
578 EXPECT_VECTOR_EQ(root->scrollDelta(), 578 EXPECT_VECTOR_EQ(root->scroll_delta(),
579 impl_thread_scroll1_ + impl_thread_scroll2_); 579 impl_thread_scroll1_ + impl_thread_scroll2_);
580 EXPECT_VECTOR_EQ(root->sentScrollDelta(), impl_thread_scroll1_); 580 EXPECT_VECTOR_EQ(root->sent_scroll_delta(), impl_thread_scroll1_);
581 581
582 EXPECT_VECTOR_EQ(pending_root->scrollOffset(), 582 EXPECT_VECTOR_EQ(pending_root->scroll_offset(),
583 initial_scroll_ + main_thread_scroll_ + impl_thread_scroll1_); 583 initial_scroll_ + main_thread_scroll_ + impl_thread_scroll1_);
584 EXPECT_VECTOR_EQ(pending_root->scrollDelta(), impl_thread_scroll2_); 584 EXPECT_VECTOR_EQ(pending_root->scroll_delta(), impl_thread_scroll2_);
585 EXPECT_VECTOR_EQ(pending_root->sentScrollDelta(), gfx::Vector2d()); 585 EXPECT_VECTOR_EQ(pending_root->sent_scroll_delta(), gfx::Vector2d());
586 } 586 }
587 break; 587 break;
588 case 1: 588 case 1:
589 EXPECT_FALSE(impl->pendingTree()); 589 EXPECT_FALSE(impl->pendingTree());
590 EXPECT_VECTOR_EQ(root->scrollOffset(), 590 EXPECT_VECTOR_EQ(root->scroll_offset(),
591 initial_scroll_ + main_thread_scroll_ + impl_thread_scroll1_); 591 initial_scroll_ + main_thread_scroll_ + impl_thread_scroll1_);
592 EXPECT_VECTOR_EQ(root->scrollDelta(), impl_thread_scroll2_); 592 EXPECT_VECTOR_EQ(root->scroll_delta(), impl_thread_scroll2_);
593 EXPECT_VECTOR_EQ(root->sentScrollDelta(), gfx::Vector2d()); 593 EXPECT_VECTOR_EQ(root->sent_scroll_delta(), gfx::Vector2d());
594 endTest(); 594 endTest();
595 break; 595 break;
596 } 596 }
597 } 597 }
598 598
599 virtual void applyScrollAndScale( 599 virtual void applyScrollAndScale(
600 gfx::Vector2d scroll_delta, float scale) OVERRIDE { 600 gfx::Vector2d scroll_delta, float scale) OVERRIDE {
601 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scrollOffset(); 601 gfx::Vector2d offset = m_layerTreeHost->rootLayer()->scroll_offset();
602 m_layerTreeHost->rootLayer()->setScrollOffset(offset + scroll_delta); 602 m_layerTreeHost->rootLayer()->SetScrollOffset(offset + scroll_delta);
603 num_scrolls_++; 603 num_scrolls_++;
604 } 604 }
605 605
606 virtual void afterTest() OVERRIDE { 606 virtual void afterTest() OVERRIDE {
607 EXPECT_EQ(1, num_scrolls_); 607 EXPECT_EQ(1, num_scrolls_);
608 } 608 }
609 609
610 private: 610 private:
611 gfx::Vector2d initial_scroll_; 611 gfx::Vector2d initial_scroll_;
612 gfx::Vector2d main_thread_scroll_; 612 gfx::Vector2d main_thread_scroll_;
613 gfx::Vector2d impl_thread_scroll1_; 613 gfx::Vector2d impl_thread_scroll1_;
614 gfx::Vector2d impl_thread_scroll2_; 614 gfx::Vector2d impl_thread_scroll2_;
615 int num_scrolls_; 615 int num_scrolls_;
616 bool can_activate_; 616 bool can_activate_;
617 }; 617 };
618 618
619 MULTI_THREAD_TEST_F(ImplSidePaintingScrollTestSimple); 619 MULTI_THREAD_TEST_F(ImplSidePaintingScrollTestSimple);
620 620
621 class LayerTreeHostScrollTestScrollZeroMaxScrollOffset 621 class LayerTreeHostScrollTestScrollZeroMaxScrollOffset
622 : public LayerTreeHostScrollTest { 622 : public LayerTreeHostScrollTest {
623 public: 623 public:
624 LayerTreeHostScrollTestScrollZeroMaxScrollOffset() {} 624 LayerTreeHostScrollTestScrollZeroMaxScrollOffset() {}
625 625
626 virtual void beginTest() OVERRIDE { 626 virtual void beginTest() OVERRIDE {
627 postSetNeedsCommitToMainThread(); 627 postSetNeedsCommitToMainThread();
628 } 628 }
629 629
630 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE { 630 virtual void drawLayersOnThread(LayerTreeHostImpl* impl) OVERRIDE {
631 LayerImpl* root = impl->rootLayer(); 631 LayerImpl* root = impl->rootLayer();
632 root->setScrollable(true); 632 root->SetScrollable(true);
633 633
634 root->setMaxScrollOffset(gfx::Vector2d(100, 100)); 634 root->SetMaxScrollOffset(gfx::Vector2d(100, 100));
635 EXPECT_EQ( 635 EXPECT_EQ(
636 InputHandlerClient::ScrollStarted, 636 InputHandlerClient::ScrollStarted,
637 root->tryScroll( 637 root->TryScroll(
638 gfx::PointF(0.0f, 1.0f), 638 gfx::PointF(0.0f, 1.0f),
639 InputHandlerClient::Gesture)); 639 InputHandlerClient::Gesture));
640 640
641 root->setMaxScrollOffset(gfx::Vector2d(0, 0)); 641 root->SetMaxScrollOffset(gfx::Vector2d(0, 0));
642 EXPECT_EQ( 642 EXPECT_EQ(
643 InputHandlerClient::ScrollIgnored, 643 InputHandlerClient::ScrollIgnored,
644 root->tryScroll( 644 root->TryScroll(
645 gfx::PointF(0.0f, 1.0f), 645 gfx::PointF(0.0f, 1.0f),
646 InputHandlerClient::Gesture)); 646 InputHandlerClient::Gesture));
647 647
648 root->setMaxScrollOffset(gfx::Vector2d(-100, -100)); 648 root->SetMaxScrollOffset(gfx::Vector2d(-100, -100));
649 EXPECT_EQ( 649 EXPECT_EQ(
650 InputHandlerClient::ScrollIgnored, 650 InputHandlerClient::ScrollIgnored,
651 root->tryScroll( 651 root->TryScroll(
652 gfx::PointF(0.0f, 1.0f), 652 gfx::PointF(0.0f, 1.0f),
653 InputHandlerClient::Gesture)); 653 InputHandlerClient::Gesture));
654 654
655 endTest(); 655 endTest();
656 } 656 }
657 657
658 virtual void afterTest() OVERRIDE {} 658 virtual void afterTest() OVERRIDE {}
659 }; 659 };
660 660
661 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollZeroMaxScrollOffset) 661 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostScrollTestScrollZeroMaxScrollOffset)
662 662
663 663
664 } // namespace 664 } // namespace
665 } // namespace cc 665 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host_unittest_occlusion.cc ('k') | cc/layer_tree_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698