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

Unified Diff: cc/trees/layer_tree_host_unittest.cc

Issue 1111743002: cc: Adding DidFinishImplFrame to LTHI. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebasing onto master. Created 5 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 side-by-side diff with in-line comments
Download patch
Index: cc/trees/layer_tree_host_unittest.cc
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index be879af1384d097e5b7d9ef53ec4ea1603c10248..902281943c058cc67c78e1433ac43974ee24c980 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -2283,7 +2283,8 @@ class LayerTreeHostTestDeferCommits : public LayerTreeHostTest {
void BeginTest() override { PostSetNeedsCommitToMainThread(); }
- void WillBeginImplFrame(const BeginFrameArgs& args) override {
+ void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl,
+ const BeginFrameArgs& args) override {
num_will_begin_impl_frame_++;
switch (num_will_begin_impl_frame_) {
case 1:
@@ -5493,6 +5494,60 @@ class LayerTreeHostTestContinuousPainting : public LayerTreeHostTest {
MULTI_THREAD_TEST_F(LayerTreeHostTestContinuousPainting);
+class LayerTreeHostTestWillBeginImplFrameHasDidBeginImplFrameDeadline
+ : public LayerTreeHostTest {
+ public:
+ enum { kExpectedNumImplFrames = 10 };
+
+ LayerTreeHostTestWillBeginImplFrameHasDidBeginImplFrameDeadline()
+ : will_begin_impl_frame_count_(0),
+ did_begin_impl_frame_deadline_count_(0) {}
+
+ void BeginTest() override {
+ // Kick off the test with a commit.
+ PostSetNeedsCommitToMainThread();
+ }
+
+ void WillBeginImplFrameOnThread(LayerTreeHostImpl* host_impl,
+ const BeginFrameArgs& args) override {
+ EXPECT_EQ(will_begin_impl_frame_count_,
+ did_begin_impl_frame_deadline_count_);
+ EXPECT_FALSE(TestEnded());
+ will_begin_impl_frame_count_++;
+ }
+
+ void DidBeginImplFrameDeadlineOnThread(
+ LayerTreeHostImpl* host_impl) override {
+ EXPECT_EQ(will_begin_impl_frame_count_,
+ did_begin_impl_frame_deadline_count_ + 1);
danakj 2015/04/30 18:43:38 nit: reverse the order of the increment with this
mithro-old 2015/05/01 02:52:35 Done. I was thinking of it like "do the checks fir
+ did_begin_impl_frame_deadline_count_++;
+
+ // Request a number of commits to cause multiple impl frames. We expect to
+ // get one more impl frames than the number of commits requested.
danakj 2015/04/30 18:43:38 can you say why?
mithro-old 2015/05/01 02:52:35 Done.
+ if (did_begin_impl_frame_deadline_count_ < kExpectedNumImplFrames - 1)
danakj 2015/04/30 18:43:38 else EndTest()?
mithro-old 2015/05/01 02:52:35 Putting the EndTest inside DidBeginImplFrameDeadli
danakj 2015/05/04 17:42:04 Oh, we should make LayerTreeTest::RealEndTest not
mithro-old 2015/05/05 04:13:13 I added the TODO inside LayerTreeTest::RealEndTest
danakj 2015/05/05 18:42:00 I disagree, I think the test should EndTest() when
mithro-old 2015/05/06 02:14:11 I agree that the test should call EndTest() when i
+ PostSetNeedsCommitToMainThread();
+ }
+
+ void SendBeginMainFrameNotExpectedSoon() override { EndTest(); }
danakj 2015/04/30 18:43:38 prefer to do this as else to PostSNC
mithro-old 2015/05/01 02:52:35 Using SendBeginMainFrameNotExpectedSoon guarantees
+
+ void AfterTest() override {
+ EXPECT_EQ(will_begin_impl_frame_count_,
+ did_begin_impl_frame_deadline_count_);
+ // TODO(mithro): Figure out why the multithread version of this test has
sunnyps 2015/05/01 00:31:43 I've had issue before too - I think it has somethi
mithro-old 2015/05/01 02:52:35 The number of WillBeginImplFrames equal to the Did
+ // one more frame then expected.Possibly related to
danakj 2015/04/30 18:43:38 spacing
mithro-old 2015/05/01 02:52:35 Done.
+ // http://crbug.com/443185
+ // EXPECT_EQ(will_begin_impl_frame_count_, kExpectedNumImplFrames);
danakj 2015/04/30 18:43:38 You can ask if there's a thread and compare agains
mithro-old 2015/05/01 02:52:35 Done. I'm now checking the value where it is corre
+ // EXPECT_EQ(did_begin_impl_frame_deadline_count_, kExpectedNumImplFrames);
+ }
+
+ private:
+ int will_begin_impl_frame_count_;
+ int did_begin_impl_frame_deadline_count_;
+};
+
+SINGLE_AND_MULTI_THREAD_TEST_F(
+ LayerTreeHostTestWillBeginImplFrameHasDidBeginImplFrameDeadline);
+
class LayerTreeHostTestSendBeginFramesToChildren : public LayerTreeHostTest {
public:
LayerTreeHostTestSendBeginFramesToChildren()

Powered by Google App Engine
This is Rietveld 408576698