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

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

Issue 1296673004: Devtools/CC: Remove continuous repainting feature (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 3 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
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/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 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/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/location.h" 10 #include "base/location.h"
(...skipping 4511 matching lines...) Expand 10 before | Expand all | Expand 10 after
4522 EndTest(); 4522 EndTest();
4523 } 4523 }
4524 4524
4525 void AfterTest() override {} 4525 void AfterTest() override {}
4526 4526
4527 FakeContentLayerClient layer_client_; 4527 FakeContentLayerClient layer_client_;
4528 }; 4528 };
4529 4529
4530 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestGpuRasterizationForced); 4530 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestGpuRasterizationForced);
4531 4531
4532 class LayerTreeHostTestContinuousPainting : public LayerTreeHostTest {
4533 public:
4534 LayerTreeHostTestContinuousPainting()
4535 : num_commits_(0), num_draws_(0), bounds_(20, 20), child_layer_(NULL) {}
4536
4537 protected:
4538 enum { kExpectedNumCommits = 10 };
4539
4540 void SetupTree() override {
4541 scoped_refptr<Layer> root_layer = Layer::Create(layer_settings());
4542 root_layer->SetBounds(bounds_);
4543
4544 child_layer_ = FakePictureLayer::Create(layer_settings(), &client_);
4545 child_layer_->SetBounds(bounds_);
4546 child_layer_->SetIsDrawable(true);
4547 root_layer->AddChild(child_layer_);
4548
4549 layer_tree_host()->SetRootLayer(root_layer);
4550 layer_tree_host()->SetViewportSize(bounds_);
4551 LayerTreeHostTest::SetupTree();
4552 }
4553
4554 void BeginTest() override {
4555 MainThreadTaskRunner()->PostTask(
4556 FROM_HERE,
4557 base::Bind(
4558 &LayerTreeHostTestContinuousPainting::EnableContinuousPainting,
4559 base::Unretained(this)));
4560 // Wait 50x longer than expected.
4561 double milliseconds_per_frame =
4562 1000.0 / layer_tree_host()->settings().renderer_settings.refresh_rate;
4563 MainThreadTaskRunner()->PostDelayedTask(
4564 FROM_HERE,
4565 base::Bind(
4566 &LayerTreeHostTestContinuousPainting::DisableContinuousPainting,
4567 base::Unretained(this)),
4568 base::TimeDelta::FromMilliseconds(50 * kExpectedNumCommits *
4569 milliseconds_per_frame));
4570 }
4571
4572 void BeginMainFrame(const BeginFrameArgs& args) override {
4573 child_layer_->SetNeedsDisplay();
4574 }
4575
4576 void AfterTest() override {
4577 EXPECT_LE(kExpectedNumCommits, num_commits_);
4578 EXPECT_LE(kExpectedNumCommits, num_draws_);
4579 EXPECT_LE(kExpectedNumCommits, child_layer_->update_count());
4580 }
4581
4582 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
4583 if (++num_draws_ == kExpectedNumCommits)
4584 EndTest();
4585 }
4586
4587 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override {
4588 ++num_commits_;
4589 }
4590
4591 private:
4592 void EnableContinuousPainting() {
4593 LayerTreeDebugState debug_state = layer_tree_host()->debug_state();
4594 debug_state.continuous_painting = true;
4595 layer_tree_host()->SetDebugState(debug_state);
4596 }
4597
4598 void DisableContinuousPainting() {
4599 LayerTreeDebugState debug_state = layer_tree_host()->debug_state();
4600 debug_state.continuous_painting = false;
4601 layer_tree_host()->SetDebugState(debug_state);
4602 EndTest();
4603 }
4604
4605 int num_commits_;
4606 int num_draws_;
4607 const gfx::Size bounds_;
4608 FakeContentLayerClient client_;
4609 scoped_refptr<FakePictureLayer> child_layer_;
4610 };
4611
4612 MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousPainting);
4613
4614 class LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame 4532 class LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame
4615 : public LayerTreeHostTest { 4533 : public LayerTreeHostTest {
4616 public: 4534 public:
4617 enum { kExpectedNumImplFrames = 10 }; 4535 enum { kExpectedNumImplFrames = 10 };
4618 4536
4619 LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame() 4537 LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame()
4620 : will_begin_impl_frame_count_(0), did_finish_impl_frame_count_(0) {} 4538 : will_begin_impl_frame_count_(0), did_finish_impl_frame_count_(0) {}
4621 4539
4622 void BeginTest() override { 4540 void BeginTest() override {
4623 // Kick off the test with a commit. 4541 // Kick off the test with a commit.
(...skipping 1627 matching lines...) Expand 10 before | Expand all | Expand 10 after
6251 ScrollAndScaleSet scale_info_; 6169 ScrollAndScaleSet scale_info_;
6252 ScrollAndScaleSet no_op_info_; 6170 ScrollAndScaleSet no_op_info_;
6253 bool requested_update_layers_; 6171 bool requested_update_layers_;
6254 int commit_count_; 6172 int commit_count_;
6255 }; 6173 };
6256 6174
6257 MULTI_THREAD_TEST_F(LayerTreeHostScrollingAndScalingUpdatesLayers); 6175 MULTI_THREAD_TEST_F(LayerTreeHostScrollingAndScalingUpdatesLayers);
6258 6176
6259 } // namespace 6177 } // namespace
6260 } // namespace cc 6178 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.cc ('k') | cc/trees/layer_tree_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698