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

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, 4 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 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 4446 matching lines...) Expand 10 before | Expand all | Expand 10 after
4457 EndTest(); 4457 EndTest();
4458 } 4458 }
4459 4459
4460 void AfterTest() override {} 4460 void AfterTest() override {}
4461 4461
4462 FakeContentLayerClient layer_client_; 4462 FakeContentLayerClient layer_client_;
4463 }; 4463 };
4464 4464
4465 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestGpuRasterizationForced); 4465 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeHostTestGpuRasterizationForced);
4466 4466
4467 class LayerTreeHostTestContinuousPainting : public LayerTreeHostTest {
4468 public:
4469 LayerTreeHostTestContinuousPainting()
4470 : num_commits_(0), num_draws_(0), bounds_(20, 20), child_layer_(NULL) {}
4471
4472 protected:
4473 enum { kExpectedNumCommits = 10 };
4474
4475 void SetupTree() override {
4476 scoped_refptr<Layer> root_layer = Layer::Create(layer_settings());
4477 root_layer->SetBounds(bounds_);
4478 root_layer->CreateRenderSurface();
4479
4480 child_layer_ = FakePictureLayer::Create(layer_settings(), &client_);
4481 child_layer_->SetBounds(bounds_);
4482 child_layer_->SetIsDrawable(true);
4483 root_layer->AddChild(child_layer_);
4484
4485 layer_tree_host()->SetRootLayer(root_layer);
4486 layer_tree_host()->SetViewportSize(bounds_);
4487 LayerTreeHostTest::SetupTree();
4488 }
4489
4490 void BeginTest() override {
4491 MainThreadTaskRunner()->PostTask(
4492 FROM_HERE,
4493 base::Bind(
4494 &LayerTreeHostTestContinuousPainting::EnableContinuousPainting,
4495 base::Unretained(this)));
4496 // Wait 50x longer than expected.
4497 double milliseconds_per_frame =
4498 1000.0 / layer_tree_host()->settings().renderer_settings.refresh_rate;
4499 MainThreadTaskRunner()->PostDelayedTask(
4500 FROM_HERE,
4501 base::Bind(
4502 &LayerTreeHostTestContinuousPainting::DisableContinuousPainting,
4503 base::Unretained(this)),
4504 base::TimeDelta::FromMilliseconds(50 * kExpectedNumCommits *
4505 milliseconds_per_frame));
4506 }
4507
4508 void BeginMainFrame(const BeginFrameArgs& args) override {
4509 child_layer_->SetNeedsDisplay();
4510 }
4511
4512 void AfterTest() override {
4513 EXPECT_LE(kExpectedNumCommits, num_commits_);
4514 EXPECT_LE(kExpectedNumCommits, num_draws_);
4515 EXPECT_LE(kExpectedNumCommits, child_layer_->update_count());
4516 }
4517
4518 void DrawLayersOnThread(LayerTreeHostImpl* impl) override {
4519 if (++num_draws_ == kExpectedNumCommits)
4520 EndTest();
4521 }
4522
4523 void CommitCompleteOnThread(LayerTreeHostImpl* impl) override {
4524 ++num_commits_;
4525 }
4526
4527 private:
4528 void EnableContinuousPainting() {
4529 LayerTreeDebugState debug_state = layer_tree_host()->debug_state();
4530 debug_state.continuous_painting = true;
4531 layer_tree_host()->SetDebugState(debug_state);
4532 }
4533
4534 void DisableContinuousPainting() {
4535 LayerTreeDebugState debug_state = layer_tree_host()->debug_state();
4536 debug_state.continuous_painting = false;
4537 layer_tree_host()->SetDebugState(debug_state);
4538 EndTest();
4539 }
4540
4541 int num_commits_;
4542 int num_draws_;
4543 const gfx::Size bounds_;
4544 FakeContentLayerClient client_;
4545 scoped_refptr<FakePictureLayer> child_layer_;
4546 };
4547
4548 MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousPainting);
4549
4550 class LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame 4467 class LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame
4551 : public LayerTreeHostTest { 4468 : public LayerTreeHostTest {
4552 public: 4469 public:
4553 enum { kExpectedNumImplFrames = 10 }; 4470 enum { kExpectedNumImplFrames = 10 };
4554 4471
4555 LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame() 4472 LayerTreeHostTestWillBeginImplFrameHasDidFinishImplFrame()
4556 : will_begin_impl_frame_count_(0), did_finish_impl_frame_count_(0) {} 4473 : will_begin_impl_frame_count_(0), did_finish_impl_frame_count_(0) {}
4557 4474
4558 void BeginTest() override { 4475 void BeginTest() override {
4559 // Kick off the test with a commit. 4476 // Kick off the test with a commit.
(...skipping 1570 matching lines...) Expand 10 before | Expand all | Expand 10 after
6130 void AfterTest() override {} 6047 void AfterTest() override {}
6131 6048
6132 std::vector<int> affected_by_page_scale_; 6049 std::vector<int> affected_by_page_scale_;
6133 std::vector<int> not_affected_by_page_scale_; 6050 std::vector<int> not_affected_by_page_scale_;
6134 }; 6051 };
6135 6052
6136 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeTestPageScaleFlags); 6053 SINGLE_AND_MULTI_THREAD_TEST_F(LayerTreeTestPageScaleFlags);
6137 6054
6138 } // namespace 6055 } // namespace
6139 } // namespace cc 6056 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698