OLD | NEW |
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 #include "cc/scheduler/scheduler.h" | 4 #include "cc/scheduler/scheduler.h" |
5 | 5 |
6 #include <string> | 6 #include <string> |
7 #include <vector> | 7 #include <vector> |
8 | 8 |
9 #include "base/debug/trace_event.h" | 9 #include "base/debug/trace_event.h" |
10 #include "base/logging.h" | 10 #include "base/logging.h" |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 class FakeSchedulerClient : public SchedulerClient { | 46 class FakeSchedulerClient : public SchedulerClient { |
47 public: | 47 public: |
48 struct FakeBeginFrameSourceForFakeSchedulerClient | 48 struct FakeBeginFrameSourceForFakeSchedulerClient |
49 : public FakeBeginFrameSource { | 49 : public FakeBeginFrameSource { |
50 FakeSchedulerClient* client_; | 50 FakeSchedulerClient* client_; |
51 | 51 |
52 explicit FakeBeginFrameSourceForFakeSchedulerClient( | 52 explicit FakeBeginFrameSourceForFakeSchedulerClient( |
53 FakeSchedulerClient* client) | 53 FakeSchedulerClient* client) |
54 : client_(client) {} | 54 : client_(client) {} |
55 | 55 |
56 virtual void OnNeedsBeginFramesChange(bool needs_begin_frames) OVERRIDE { | 56 virtual void OnNeedsBeginFramesChange(bool needs_begin_frames) override { |
57 if (needs_begin_frames) { | 57 if (needs_begin_frames) { |
58 client_->actions_.push_back("SetNeedsBeginFrames(true)"); | 58 client_->actions_.push_back("SetNeedsBeginFrames(true)"); |
59 } else { | 59 } else { |
60 client_->actions_.push_back("SetNeedsBeginFrames(false)"); | 60 client_->actions_.push_back("SetNeedsBeginFrames(false)"); |
61 } | 61 } |
62 client_->states_.push_back(client_->scheduler_->AsValue()); | 62 client_->states_.push_back(client_->scheduler_->AsValue()); |
63 } | 63 } |
64 }; | 64 }; |
65 | 65 |
66 FakeSchedulerClient() | 66 FakeSchedulerClient() |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 const char* Action(int i) const { return actions_[i]; } | 100 const char* Action(int i) const { return actions_[i]; } |
101 std::string StateForAction(int i) const { return states_[i]->ToString(); } | 101 std::string StateForAction(int i) const { return states_[i]->ToString(); } |
102 base::TimeTicks posted_begin_impl_frame_deadline() const { | 102 base::TimeTicks posted_begin_impl_frame_deadline() const { |
103 return posted_begin_impl_frame_deadline_; | 103 return posted_begin_impl_frame_deadline_; |
104 } | 104 } |
105 | 105 |
106 bool ExternalBeginFrame() { | 106 bool ExternalBeginFrame() { |
107 return scheduler_->settings().begin_frame_scheduling_enabled && | 107 return scheduler_->settings().begin_frame_scheduling_enabled && |
108 scheduler_->settings().throttle_frame_production; | 108 scheduler_->settings().throttle_frame_production; |
109 } | 109 } |
110 virtual FakeBeginFrameSource* ExternalBeginFrameSource() OVERRIDE { | 110 virtual FakeBeginFrameSource* ExternalBeginFrameSource() override { |
111 return &fake_frame_source_; | 111 return &fake_frame_source_; |
112 } | 112 } |
113 | 113 |
114 void AdvanceFrame() { | 114 void AdvanceFrame() { |
115 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug.scheduler.frames"), | 115 TRACE_EVENT0(TRACE_DISABLED_BY_DEFAULT("cc.debug.scheduler.frames"), |
116 "FakeSchedulerClient::AdvanceFrame"); | 116 "FakeSchedulerClient::AdvanceFrame"); |
117 // EXPECT_TRUE(needs_begin_frames()); | 117 // EXPECT_TRUE(needs_begin_frames()); |
118 if (ExternalBeginFrame()) { | 118 if (ExternalBeginFrame()) { |
119 // Creep the time forward so that any BeginFrameArgs is not equal to the | 119 // Creep the time forward so that any BeginFrameArgs is not equal to the |
120 // last one otherwise we violate the BeginFrameSource contract. | 120 // last one otherwise we violate the BeginFrameSource contract. |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
152 void SetSwapWillHappenIfDrawHappens(bool swap_will_happen_if_draw_happens) { | 152 void SetSwapWillHappenIfDrawHappens(bool swap_will_happen_if_draw_happens) { |
153 swap_will_happen_if_draw_happens_ = swap_will_happen_if_draw_happens; | 153 swap_will_happen_if_draw_happens_ = swap_will_happen_if_draw_happens; |
154 } | 154 } |
155 void SetAutomaticSwapAck(bool automatic_swap_ack) { | 155 void SetAutomaticSwapAck(bool automatic_swap_ack) { |
156 automatic_swap_ack_ = automatic_swap_ack; | 156 automatic_swap_ack_ = automatic_swap_ack; |
157 } | 157 } |
158 void SetRedrawWillHappenIfUpdateVisibleTilesHappens(bool redraw) { | 158 void SetRedrawWillHappenIfUpdateVisibleTilesHappens(bool redraw) { |
159 redraw_will_happen_if_update_visible_tiles_happens_ = redraw; | 159 redraw_will_happen_if_update_visible_tiles_happens_ = redraw; |
160 } | 160 } |
161 // SchedulerClient implementation. | 161 // SchedulerClient implementation. |
162 virtual void WillBeginImplFrame(const BeginFrameArgs& args) OVERRIDE { | 162 virtual void WillBeginImplFrame(const BeginFrameArgs& args) override { |
163 actions_.push_back("WillBeginImplFrame"); | 163 actions_.push_back("WillBeginImplFrame"); |
164 states_.push_back(scheduler_->AsValue()); | 164 states_.push_back(scheduler_->AsValue()); |
165 } | 165 } |
166 virtual void ScheduledActionSendBeginMainFrame() OVERRIDE { | 166 virtual void ScheduledActionSendBeginMainFrame() override { |
167 actions_.push_back("ScheduledActionSendBeginMainFrame"); | 167 actions_.push_back("ScheduledActionSendBeginMainFrame"); |
168 states_.push_back(scheduler_->AsValue()); | 168 states_.push_back(scheduler_->AsValue()); |
169 } | 169 } |
170 virtual void ScheduledActionAnimate() OVERRIDE { | 170 virtual void ScheduledActionAnimate() override { |
171 actions_.push_back("ScheduledActionAnimate"); | 171 actions_.push_back("ScheduledActionAnimate"); |
172 states_.push_back(scheduler_->AsValue()); | 172 states_.push_back(scheduler_->AsValue()); |
173 } | 173 } |
174 virtual DrawResult ScheduledActionDrawAndSwapIfPossible() OVERRIDE { | 174 virtual DrawResult ScheduledActionDrawAndSwapIfPossible() override { |
175 actions_.push_back("ScheduledActionDrawAndSwapIfPossible"); | 175 actions_.push_back("ScheduledActionDrawAndSwapIfPossible"); |
176 states_.push_back(scheduler_->AsValue()); | 176 states_.push_back(scheduler_->AsValue()); |
177 num_draws_++; | 177 num_draws_++; |
178 DrawResult result = | 178 DrawResult result = |
179 draw_will_happen_ ? DRAW_SUCCESS : DRAW_ABORTED_CHECKERBOARD_ANIMATIONS; | 179 draw_will_happen_ ? DRAW_SUCCESS : DRAW_ABORTED_CHECKERBOARD_ANIMATIONS; |
180 bool swap_will_happen = | 180 bool swap_will_happen = |
181 draw_will_happen_ && swap_will_happen_if_draw_happens_; | 181 draw_will_happen_ && swap_will_happen_if_draw_happens_; |
182 if (swap_will_happen) { | 182 if (swap_will_happen) { |
183 scheduler_->DidSwapBuffers(); | 183 scheduler_->DidSwapBuffers(); |
184 if (swap_contains_incomplete_tile_) { | 184 if (swap_contains_incomplete_tile_) { |
185 scheduler_->SetSwapUsedIncompleteTile(true); | 185 scheduler_->SetSwapUsedIncompleteTile(true); |
186 swap_contains_incomplete_tile_ = false; | 186 swap_contains_incomplete_tile_ = false; |
187 } else { | 187 } else { |
188 scheduler_->SetSwapUsedIncompleteTile(false); | 188 scheduler_->SetSwapUsedIncompleteTile(false); |
189 } | 189 } |
190 | 190 |
191 if (automatic_swap_ack_) | 191 if (automatic_swap_ack_) |
192 scheduler_->DidSwapBuffersComplete(); | 192 scheduler_->DidSwapBuffersComplete(); |
193 } | 193 } |
194 return result; | 194 return result; |
195 } | 195 } |
196 virtual DrawResult ScheduledActionDrawAndSwapForced() OVERRIDE { | 196 virtual DrawResult ScheduledActionDrawAndSwapForced() override { |
197 actions_.push_back("ScheduledActionDrawAndSwapForced"); | 197 actions_.push_back("ScheduledActionDrawAndSwapForced"); |
198 states_.push_back(scheduler_->AsValue()); | 198 states_.push_back(scheduler_->AsValue()); |
199 return DRAW_SUCCESS; | 199 return DRAW_SUCCESS; |
200 } | 200 } |
201 virtual void ScheduledActionCommit() OVERRIDE { | 201 virtual void ScheduledActionCommit() override { |
202 actions_.push_back("ScheduledActionCommit"); | 202 actions_.push_back("ScheduledActionCommit"); |
203 states_.push_back(scheduler_->AsValue()); | 203 states_.push_back(scheduler_->AsValue()); |
204 } | 204 } |
205 virtual void ScheduledActionUpdateVisibleTiles() OVERRIDE { | 205 virtual void ScheduledActionUpdateVisibleTiles() override { |
206 actions_.push_back("ScheduledActionUpdateVisibleTiles"); | 206 actions_.push_back("ScheduledActionUpdateVisibleTiles"); |
207 states_.push_back(scheduler_->AsValue()); | 207 states_.push_back(scheduler_->AsValue()); |
208 if (redraw_will_happen_if_update_visible_tiles_happens_) | 208 if (redraw_will_happen_if_update_visible_tiles_happens_) |
209 scheduler_->SetNeedsRedraw(); | 209 scheduler_->SetNeedsRedraw(); |
210 } | 210 } |
211 virtual void ScheduledActionActivateSyncTree() OVERRIDE { | 211 virtual void ScheduledActionActivateSyncTree() override { |
212 actions_.push_back("ScheduledActionActivateSyncTree"); | 212 actions_.push_back("ScheduledActionActivateSyncTree"); |
213 states_.push_back(scheduler_->AsValue()); | 213 states_.push_back(scheduler_->AsValue()); |
214 } | 214 } |
215 virtual void ScheduledActionBeginOutputSurfaceCreation() OVERRIDE { | 215 virtual void ScheduledActionBeginOutputSurfaceCreation() override { |
216 actions_.push_back("ScheduledActionBeginOutputSurfaceCreation"); | 216 actions_.push_back("ScheduledActionBeginOutputSurfaceCreation"); |
217 states_.push_back(scheduler_->AsValue()); | 217 states_.push_back(scheduler_->AsValue()); |
218 } | 218 } |
219 virtual void ScheduledActionManageTiles() OVERRIDE { | 219 virtual void ScheduledActionManageTiles() override { |
220 actions_.push_back("ScheduledActionManageTiles"); | 220 actions_.push_back("ScheduledActionManageTiles"); |
221 states_.push_back(scheduler_->AsValue()); | 221 states_.push_back(scheduler_->AsValue()); |
222 } | 222 } |
223 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks) OVERRIDE { | 223 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks) override { |
224 if (log_anticipated_draw_time_change_) | 224 if (log_anticipated_draw_time_change_) |
225 actions_.push_back("DidAnticipatedDrawTimeChange"); | 225 actions_.push_back("DidAnticipatedDrawTimeChange"); |
226 } | 226 } |
227 virtual base::TimeDelta DrawDurationEstimate() OVERRIDE { | 227 virtual base::TimeDelta DrawDurationEstimate() override { |
228 return base::TimeDelta(); | 228 return base::TimeDelta(); |
229 } | 229 } |
230 virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() OVERRIDE { | 230 virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() override { |
231 return base::TimeDelta(); | 231 return base::TimeDelta(); |
232 } | 232 } |
233 virtual base::TimeDelta CommitToActivateDurationEstimate() OVERRIDE { | 233 virtual base::TimeDelta CommitToActivateDurationEstimate() override { |
234 return base::TimeDelta(); | 234 return base::TimeDelta(); |
235 } | 235 } |
236 | 236 |
237 virtual void DidBeginImplFrameDeadline() OVERRIDE {} | 237 virtual void DidBeginImplFrameDeadline() override {} |
238 | 238 |
239 base::Callback<bool(void)> ImplFrameDeadlinePending(bool state) { | 239 base::Callback<bool(void)> ImplFrameDeadlinePending(bool state) { |
240 return base::Bind(&FakeSchedulerClient::ImplFrameDeadlinePendingCallback, | 240 return base::Bind(&FakeSchedulerClient::ImplFrameDeadlinePendingCallback, |
241 base::Unretained(this), | 241 base::Unretained(this), |
242 state); | 242 state); |
243 } | 243 } |
244 | 244 |
245 protected: | 245 protected: |
246 bool ImplFrameDeadlinePendingCallback(bool state) { | 246 bool ImplFrameDeadlinePendingCallback(bool state) { |
247 return scheduler_->BeginImplFrameDeadlinePending() == state; | 247 return scheduler_->BeginImplFrameDeadlinePending() == state; |
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
448 // On the next BeginImplFrame, verify we go back to a quiescent state and | 448 // On the next BeginImplFrame, verify we go back to a quiescent state and |
449 // no longer request BeginImplFrames. | 449 // no longer request BeginImplFrames. |
450 client.AdvanceFrame(); | 450 client.AdvanceFrame(); |
451 client.task_runner().RunPendingTasks(); // Run posted deadline. | 451 client.task_runner().RunPendingTasks(); // Run posted deadline. |
452 EXPECT_FALSE(client.needs_begin_frames()); | 452 EXPECT_FALSE(client.needs_begin_frames()); |
453 client.Reset(); | 453 client.Reset(); |
454 } | 454 } |
455 | 455 |
456 class SchedulerClientThatsetNeedsDrawInsideDraw : public FakeSchedulerClient { | 456 class SchedulerClientThatsetNeedsDrawInsideDraw : public FakeSchedulerClient { |
457 public: | 457 public: |
458 virtual void ScheduledActionSendBeginMainFrame() OVERRIDE {} | 458 virtual void ScheduledActionSendBeginMainFrame() override {} |
459 virtual DrawResult ScheduledActionDrawAndSwapIfPossible() | 459 virtual DrawResult ScheduledActionDrawAndSwapIfPossible() |
460 OVERRIDE { | 460 override { |
461 // Only SetNeedsRedraw the first time this is called | 461 // Only SetNeedsRedraw the first time this is called |
462 if (!num_draws_) | 462 if (!num_draws_) |
463 scheduler_->SetNeedsRedraw(); | 463 scheduler_->SetNeedsRedraw(); |
464 return FakeSchedulerClient::ScheduledActionDrawAndSwapIfPossible(); | 464 return FakeSchedulerClient::ScheduledActionDrawAndSwapIfPossible(); |
465 } | 465 } |
466 | 466 |
467 virtual DrawResult ScheduledActionDrawAndSwapForced() OVERRIDE { | 467 virtual DrawResult ScheduledActionDrawAndSwapForced() override { |
468 NOTREACHED(); | 468 NOTREACHED(); |
469 return DRAW_SUCCESS; | 469 return DRAW_SUCCESS; |
470 } | 470 } |
471 | 471 |
472 virtual void ScheduledActionCommit() OVERRIDE {} | 472 virtual void ScheduledActionCommit() override {} |
473 virtual void ScheduledActionBeginOutputSurfaceCreation() OVERRIDE {} | 473 virtual void ScheduledActionBeginOutputSurfaceCreation() override {} |
474 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks) OVERRIDE {} | 474 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks) override {} |
475 }; | 475 }; |
476 | 476 |
477 // Tests for two different situations: | 477 // Tests for two different situations: |
478 // 1. the scheduler dropping SetNeedsRedraw requests that happen inside | 478 // 1. the scheduler dropping SetNeedsRedraw requests that happen inside |
479 // a ScheduledActionDrawAndSwap | 479 // a ScheduledActionDrawAndSwap |
480 // 2. the scheduler drawing twice inside a single tick | 480 // 2. the scheduler drawing twice inside a single tick |
481 TEST(SchedulerTest, RequestRedrawInsideDraw) { | 481 TEST(SchedulerTest, RequestRedrawInsideDraw) { |
482 SchedulerClientThatsetNeedsDrawInsideDraw client; | 482 SchedulerClientThatsetNeedsDrawInsideDraw client; |
483 SchedulerSettings default_scheduler_settings; | 483 SchedulerSettings default_scheduler_settings; |
484 TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings); | 484 TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings); |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
559 EXPECT_TRUE(scheduler->CommitPending()); | 559 EXPECT_TRUE(scheduler->CommitPending()); |
560 EXPECT_FALSE(scheduler->RedrawPending()); | 560 EXPECT_FALSE(scheduler->RedrawPending()); |
561 EXPECT_TRUE(client.needs_begin_frames()); | 561 EXPECT_TRUE(client.needs_begin_frames()); |
562 } | 562 } |
563 | 563 |
564 class SchedulerClientThatSetNeedsCommitInsideDraw : public FakeSchedulerClient { | 564 class SchedulerClientThatSetNeedsCommitInsideDraw : public FakeSchedulerClient { |
565 public: | 565 public: |
566 SchedulerClientThatSetNeedsCommitInsideDraw() | 566 SchedulerClientThatSetNeedsCommitInsideDraw() |
567 : set_needs_commit_on_next_draw_(false) {} | 567 : set_needs_commit_on_next_draw_(false) {} |
568 | 568 |
569 virtual void ScheduledActionSendBeginMainFrame() OVERRIDE {} | 569 virtual void ScheduledActionSendBeginMainFrame() override {} |
570 virtual DrawResult ScheduledActionDrawAndSwapIfPossible() | 570 virtual DrawResult ScheduledActionDrawAndSwapIfPossible() |
571 OVERRIDE { | 571 override { |
572 // Only SetNeedsCommit the first time this is called | 572 // Only SetNeedsCommit the first time this is called |
573 if (set_needs_commit_on_next_draw_) { | 573 if (set_needs_commit_on_next_draw_) { |
574 scheduler_->SetNeedsCommit(); | 574 scheduler_->SetNeedsCommit(); |
575 set_needs_commit_on_next_draw_ = false; | 575 set_needs_commit_on_next_draw_ = false; |
576 } | 576 } |
577 return FakeSchedulerClient::ScheduledActionDrawAndSwapIfPossible(); | 577 return FakeSchedulerClient::ScheduledActionDrawAndSwapIfPossible(); |
578 } | 578 } |
579 | 579 |
580 virtual DrawResult ScheduledActionDrawAndSwapForced() OVERRIDE { | 580 virtual DrawResult ScheduledActionDrawAndSwapForced() override { |
581 NOTREACHED(); | 581 NOTREACHED(); |
582 return DRAW_SUCCESS; | 582 return DRAW_SUCCESS; |
583 } | 583 } |
584 | 584 |
585 virtual void ScheduledActionCommit() OVERRIDE {} | 585 virtual void ScheduledActionCommit() override {} |
586 virtual void ScheduledActionBeginOutputSurfaceCreation() OVERRIDE {} | 586 virtual void ScheduledActionBeginOutputSurfaceCreation() override {} |
587 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks) OVERRIDE {} | 587 virtual void DidAnticipatedDrawTimeChange(base::TimeTicks) override {} |
588 | 588 |
589 void SetNeedsCommitOnNextDraw() { set_needs_commit_on_next_draw_ = true; } | 589 void SetNeedsCommitOnNextDraw() { set_needs_commit_on_next_draw_ = true; } |
590 | 590 |
591 private: | 591 private: |
592 bool set_needs_commit_on_next_draw_; | 592 bool set_needs_commit_on_next_draw_; |
593 }; | 593 }; |
594 | 594 |
595 // Tests for the scheduler infinite-looping on SetNeedsCommit requests that | 595 // Tests for the scheduler infinite-looping on SetNeedsCommit requests that |
596 // happen inside a ScheduledActionDrawAndSwap | 596 // happen inside a ScheduledActionDrawAndSwap |
597 TEST(SchedulerTest, RequestCommitInsideDraw) { | 597 TEST(SchedulerTest, RequestCommitInsideDraw) { |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
715 client.SetDrawWillHappen(false); | 715 client.SetDrawWillHappen(false); |
716 client.SetNeedsCommitOnNextDraw(); | 716 client.SetNeedsCommitOnNextDraw(); |
717 client.AdvanceFrame(); | 717 client.AdvanceFrame(); |
718 client.task_runner().RunPendingTasks(); // Run posted deadline. | 718 client.task_runner().RunPendingTasks(); // Run posted deadline. |
719 EXPECT_EQ(2, client.num_draws()); | 719 EXPECT_EQ(2, client.num_draws()); |
720 } | 720 } |
721 | 721 |
722 class SchedulerClientNeedsManageTilesInDraw : public FakeSchedulerClient { | 722 class SchedulerClientNeedsManageTilesInDraw : public FakeSchedulerClient { |
723 public: | 723 public: |
724 virtual DrawResult ScheduledActionDrawAndSwapIfPossible() | 724 virtual DrawResult ScheduledActionDrawAndSwapIfPossible() |
725 OVERRIDE { | 725 override { |
726 scheduler_->SetNeedsManageTiles(); | 726 scheduler_->SetNeedsManageTiles(); |
727 return FakeSchedulerClient::ScheduledActionDrawAndSwapIfPossible(); | 727 return FakeSchedulerClient::ScheduledActionDrawAndSwapIfPossible(); |
728 } | 728 } |
729 }; | 729 }; |
730 | 730 |
731 // Test manage tiles is independant of draws. | 731 // Test manage tiles is independant of draws. |
732 TEST(SchedulerTest, ManageTiles) { | 732 TEST(SchedulerTest, ManageTiles) { |
733 SchedulerClientNeedsManageTilesInDraw client; | 733 SchedulerClientNeedsManageTilesInDraw client; |
734 SchedulerSettings default_scheduler_settings; | 734 SchedulerSettings default_scheduler_settings; |
735 TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings); | 735 TestScheduler* scheduler = client.CreateScheduler(default_scheduler_settings); |
(...skipping 300 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1036 public: | 1036 public: |
1037 SchedulerClientWithFixedEstimates( | 1037 SchedulerClientWithFixedEstimates( |
1038 base::TimeDelta draw_duration, | 1038 base::TimeDelta draw_duration, |
1039 base::TimeDelta begin_main_frame_to_commit_duration, | 1039 base::TimeDelta begin_main_frame_to_commit_duration, |
1040 base::TimeDelta commit_to_activate_duration) | 1040 base::TimeDelta commit_to_activate_duration) |
1041 : draw_duration_(draw_duration), | 1041 : draw_duration_(draw_duration), |
1042 begin_main_frame_to_commit_duration_( | 1042 begin_main_frame_to_commit_duration_( |
1043 begin_main_frame_to_commit_duration), | 1043 begin_main_frame_to_commit_duration), |
1044 commit_to_activate_duration_(commit_to_activate_duration) {} | 1044 commit_to_activate_duration_(commit_to_activate_duration) {} |
1045 | 1045 |
1046 virtual base::TimeDelta DrawDurationEstimate() OVERRIDE { | 1046 virtual base::TimeDelta DrawDurationEstimate() override { |
1047 return draw_duration_; | 1047 return draw_duration_; |
1048 } | 1048 } |
1049 virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() OVERRIDE { | 1049 virtual base::TimeDelta BeginMainFrameToCommitDurationEstimate() override { |
1050 return begin_main_frame_to_commit_duration_; | 1050 return begin_main_frame_to_commit_duration_; |
1051 } | 1051 } |
1052 virtual base::TimeDelta CommitToActivateDurationEstimate() OVERRIDE { | 1052 virtual base::TimeDelta CommitToActivateDurationEstimate() override { |
1053 return commit_to_activate_duration_; | 1053 return commit_to_activate_duration_; |
1054 } | 1054 } |
1055 | 1055 |
1056 private: | 1056 private: |
1057 base::TimeDelta draw_duration_; | 1057 base::TimeDelta draw_duration_; |
1058 base::TimeDelta begin_main_frame_to_commit_duration_; | 1058 base::TimeDelta begin_main_frame_to_commit_duration_; |
1059 base::TimeDelta commit_to_activate_duration_; | 1059 base::TimeDelta commit_to_activate_duration_; |
1060 }; | 1060 }; |
1061 | 1061 |
1062 void MainFrameInHighLatencyMode(int64 begin_main_frame_to_commit_estimate_in_ms, | 1062 void MainFrameInHighLatencyMode(int64 begin_main_frame_to_commit_estimate_in_ms, |
(...skipping 899 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1962 | 1962 |
1963 client.Reset(); | 1963 client.Reset(); |
1964 scheduler->SetVisible(false); | 1964 scheduler->SetVisible(false); |
1965 // Sync tree should be forced to activate. | 1965 // Sync tree should be forced to activate. |
1966 EXPECT_ACTION("SetNeedsBeginFrames(false)", client, 0, 2); | 1966 EXPECT_ACTION("SetNeedsBeginFrames(false)", client, 0, 2); |
1967 EXPECT_ACTION("ScheduledActionActivateSyncTree", client, 1, 2); | 1967 EXPECT_ACTION("ScheduledActionActivateSyncTree", client, 1, 2); |
1968 } | 1968 } |
1969 | 1969 |
1970 } // namespace | 1970 } // namespace |
1971 } // namespace cc | 1971 } // namespace cc |
OLD | NEW |