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

Side by Side Diff: cc/trees/layer_tree_host_unittest.cc

Issue 14017008: Ensure that pinch-zoom scrollbar animations trigger a draw (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix nits Created 7 years, 8 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/layers/scrollbar_layer.cc ('k') | cc/trees/layer_tree_host_unittest_animation.cc » ('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 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 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/trees/layer_tree_host.h" 5 #include "cc/trees/layer_tree_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/synchronization/lock.h" 9 #include "base/synchronization/lock.h"
10 #include "cc/animation/timing_function.h" 10 #include "cc/animation/timing_function.h"
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 : root_layer_(ContentLayer::Create(&client_)) {} 247 : root_layer_(ContentLayer::Create(&client_)) {}
248 248
249 virtual void BeginTest() OVERRIDE { 249 virtual void BeginTest() OVERRIDE {
250 root_layer_->SetAutomaticallyComputeRasterScale(false); 250 root_layer_->SetAutomaticallyComputeRasterScale(false);
251 root_layer_->SetIsDrawable(true); 251 root_layer_->SetIsDrawable(true);
252 root_layer_->SetBounds(gfx::Size(1, 1)); 252 root_layer_->SetBounds(gfx::Size(1, 1));
253 layer_tree_host()->SetRootLayer(root_layer_); 253 layer_tree_host()->SetRootLayer(root_layer_);
254 PostSetNeedsCommitToMainThread(); 254 PostSetNeedsCommitToMainThread();
255 } 255 }
256 256
257 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
258 if (host_impl->active_tree()->source_frame_number() == 1)
259 EndTest();
260 }
261
257 virtual void DidCommit() OVERRIDE { 262 virtual void DidCommit() OVERRIDE {
258 switch (layer_tree_host()->commit_number()) { 263 switch (layer_tree_host()->commit_number()) {
259 case 1: 264 case 1:
260 // Changing the content bounds will cause a single commit! 265 // Changing the content bounds will cause a single commit!
261 root_layer_->SetRasterScale(4.f); 266 root_layer_->SetRasterScale(4.f);
262 break; 267 break;
263 default: 268 default:
264 // No extra commits. 269 // No extra commits.
265 EXPECT_EQ(2, layer_tree_host()->commit_number()); 270 EXPECT_EQ(2, layer_tree_host()->commit_number());
266 EndTest();
267 } 271 }
268 } 272 }
269 273
270 virtual void AfterTest() OVERRIDE {} 274 virtual void AfterTest() OVERRIDE {}
271 275
272 private: 276 private:
273 FakeContentLayerClient client_; 277 FakeContentLayerClient client_;
274 scoped_refptr<ContentLayer> root_layer_; 278 scoped_refptr<ContentLayer> root_layer_;
275 }; 279 };
276 280
277 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestNoExtraCommitFromInvalidate); 281 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestNoExtraCommitFromInvalidate);
278 282
283 class LayerTreeHostTestNoExtraCommitFromScrollbarInvalidate
284 : public LayerTreeHostTest {
285 public:
286 LayerTreeHostTestNoExtraCommitFromScrollbarInvalidate()
287 : root_layer_(FakeContentLayer::Create(&client_)) {}
288
289 virtual void SetupTree() OVERRIDE {
290 root_layer_->SetBounds(gfx::Size(10, 20));
291
292 bool paint_scrollbar = true;
293 bool has_thumb = false;
294 scrollbar_ = FakeScrollbarLayer::Create(paint_scrollbar,
295 has_thumb,
296 root_layer_->id());
297 scrollbar_->SetPosition(gfx::Point(0, 10));
298 scrollbar_->SetBounds(gfx::Size(10, 10));
299
300 root_layer_->AddChild(scrollbar_);
301
302 layer_tree_host()->SetRootLayer(root_layer_);
303 LayerTreeHostTest::SetupTree();
304 }
305
306 virtual void BeginTest() OVERRIDE {
307 PostSetNeedsCommitToMainThread();
308 }
309
310 virtual void DrawLayersOnThread(LayerTreeHostImpl* host_impl) OVERRIDE {
311 if (host_impl->active_tree()->source_frame_number() == 1)
312 EndTest();
313 }
314
315 virtual void DidCommit() OVERRIDE {
316 switch (layer_tree_host()->commit_number()) {
317 case 1:
318 // This should cause a single commit.
319 scrollbar_->SetRasterScale(4.0f);
320 break;
321 default:
322 // No extra commits.
323 EXPECT_EQ(2, layer_tree_host()->commit_number());
324 }
325 }
326
327 virtual void AfterTest() OVERRIDE {}
328
329 private:
330 FakeContentLayerClient client_;
331 scoped_refptr<FakeContentLayer> root_layer_;
332 scoped_refptr<FakeScrollbarLayer> scrollbar_;
333 };
334
335 SINGLE_AND_MULTI_THREAD_TEST_F(
336 LayerTreeHostTestNoExtraCommitFromScrollbarInvalidate);
337
279 class LayerTreeHostTestCompositeAndReadback : public LayerTreeHostTest { 338 class LayerTreeHostTestCompositeAndReadback : public LayerTreeHostTest {
280 public: 339 public:
281 LayerTreeHostTestCompositeAndReadback() : num_commits_(0) {} 340 LayerTreeHostTestCompositeAndReadback() : num_commits_(0) {}
282 341
283 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); } 342 virtual void BeginTest() OVERRIDE { PostSetNeedsCommitToMainThread(); }
284 343
285 virtual void DidCommit() OVERRIDE { 344 virtual void DidCommit() OVERRIDE {
286 num_commits_++; 345 num_commits_++;
287 if (num_commits_ == 1) { 346 if (num_commits_ == 1) {
288 char pixels[4]; 347 char pixels[4];
(...skipping 2034 matching lines...) Expand 10 before | Expand all | Expand 10 after
2323 2382
2324 private: 2383 private:
2325 SetBoundsClient client_; 2384 SetBoundsClient client_;
2326 int num_commits_; 2385 int num_commits_;
2327 }; 2386 };
2328 2387
2329 SINGLE_THREAD_TEST_F(LayerTreeHostTestChangeLayerPropertiesInPaintContents); 2388 SINGLE_THREAD_TEST_F(LayerTreeHostTestChangeLayerPropertiesInPaintContents);
2330 2389
2331 } // namespace 2390 } // namespace
2332 } // namespace cc 2391 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layers/scrollbar_layer.cc ('k') | cc/trees/layer_tree_host_unittest_animation.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698