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

Side by Side Diff: cc/scheduler/scheduler_state_machine_unittest.cc

Issue 1432463002: cc: Track BeginMainFrame more precisely in CompositorTimingHistory. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase; fix typo Created 5 years, 1 month 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/scheduler/scheduler_state_machine.cc ('k') | cc/scheduler/scheduler_unittest.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/scheduler/scheduler_state_machine.h" 5 #include "cc/scheduler/scheduler_state_machine.h"
6 6
7 #include "base/trace_event/trace_event.h" 7 #include "base/trace_event/trace_event.h"
8 #include "cc/scheduler/scheduler.h" 8 #include "cc/scheduler/scheduler.h"
9 #include "cc/test/begin_frame_args_test.h" 9 #include "cc/test/begin_frame_args_test.h"
10 #include "testing/gtest/include/gtest/gtest.h" 10 #include "testing/gtest/include/gtest/gtest.h"
(...skipping 1215 matching lines...) Expand 10 before | Expand all | Expand 10 after
1226 // Begin the frame while visible. 1226 // Begin the frame while visible.
1227 state.OnBeginImplFrame(); 1227 state.OnBeginImplFrame();
1228 EXPECT_ACTION_UPDATE_STATE( 1228 EXPECT_ACTION_UPDATE_STATE(
1229 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); 1229 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
1230 EXPECT_MAIN_FRAME_STATE(SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT); 1230 EXPECT_MAIN_FRAME_STATE(SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT);
1231 EXPECT_FALSE(state.NeedsCommit()); 1231 EXPECT_FALSE(state.NeedsCommit());
1232 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); 1232 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
1233 1233
1234 // Become invisible and abort BeginMainFrame. 1234 // Become invisible and abort BeginMainFrame.
1235 state.SetVisible(false); 1235 state.SetVisible(false);
1236 state.NotifyBeginMainFrameStarted();
1236 state.BeginMainFrameAborted(CommitEarlyOutReason::ABORTED_NOT_VISIBLE); 1237 state.BeginMainFrameAborted(CommitEarlyOutReason::ABORTED_NOT_VISIBLE);
1237 1238
1238 // NeedsCommit should now be true again because we never actually did a 1239 // NeedsCommit should now be true again because we never actually did a
1239 // commit. 1240 // commit.
1240 EXPECT_TRUE(state.NeedsCommit()); 1241 EXPECT_TRUE(state.NeedsCommit());
1241 1242
1242 // We should now be back in the idle state as if we never started the frame. 1243 // We should now be back in the idle state as if we never started the frame.
1243 EXPECT_MAIN_FRAME_STATE(SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_IDLE); 1244 EXPECT_MAIN_FRAME_STATE(SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_IDLE);
1244 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); 1245 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
1245 1246
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
1281 state.SetNeedsBeginMainFrame(); 1282 state.SetNeedsBeginMainFrame();
1282 state.OnBeginImplFrame(); 1283 state.OnBeginImplFrame();
1283 EXPECT_ACTION_UPDATE_STATE( 1284 EXPECT_ACTION_UPDATE_STATE(
1284 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); 1285 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
1285 EXPECT_MAIN_FRAME_STATE(SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT); 1286 EXPECT_MAIN_FRAME_STATE(SchedulerStateMachine::BEGIN_MAIN_FRAME_STATE_SENT);
1286 EXPECT_FALSE(state.NeedsCommit()); 1287 EXPECT_FALSE(state.NeedsCommit());
1287 EXPECT_ACTION(SchedulerStateMachine::ACTION_NONE); 1288 EXPECT_ACTION(SchedulerStateMachine::ACTION_NONE);
1288 1289
1289 // Abort the commit, true means that the BeginMainFrame was sent but there 1290 // Abort the commit, true means that the BeginMainFrame was sent but there
1290 // was no work to do on the main thread. 1291 // was no work to do on the main thread.
1292 state.NotifyBeginMainFrameStarted();
1291 state.BeginMainFrameAborted(CommitEarlyOutReason::FINISHED_NO_UPDATES); 1293 state.BeginMainFrameAborted(CommitEarlyOutReason::FINISHED_NO_UPDATES);
1292 1294
1293 // NeedsCommit should now be false because the commit was actually handled. 1295 // NeedsCommit should now be false because the commit was actually handled.
1294 EXPECT_FALSE(state.NeedsCommit()); 1296 EXPECT_FALSE(state.NeedsCommit());
1295 1297
1296 // Since the commit was aborted, we don't need to try and draw. 1298 // Since the commit was aborted, we don't need to try and draw.
1297 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); 1299 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
1298 state.OnBeginImplFrameDeadline(); 1300 state.OnBeginImplFrameDeadline();
1299 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); 1301 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
1300 1302
(...skipping 541 matching lines...) Expand 10 before | Expand all | Expand 10 after
1842 state.SetNeedsBeginMainFrame(); 1844 state.SetNeedsBeginMainFrame();
1843 1845
1844 // We should start the commit normally. 1846 // We should start the commit normally.
1845 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE); 1847 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE);
1846 EXPECT_ACTION_UPDATE_STATE( 1848 EXPECT_ACTION_UPDATE_STATE(
1847 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); 1849 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
1848 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); 1850 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
1849 1851
1850 // Since only the scroll offset changed, the main thread will abort the 1852 // Since only the scroll offset changed, the main thread will abort the
1851 // commit. 1853 // commit.
1854 state.NotifyBeginMainFrameStarted();
1852 state.BeginMainFrameAborted(CommitEarlyOutReason::FINISHED_NO_UPDATES); 1855 state.BeginMainFrameAborted(CommitEarlyOutReason::FINISHED_NO_UPDATES);
1853 1856
1854 // Since the commit was aborted, we should draw right away instead of waiting 1857 // Since the commit was aborted, we should draw right away instead of waiting
1855 // for the deadline. 1858 // for the deadline.
1856 EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineImmediately()); 1859 EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineImmediately());
1857 } 1860 }
1858 1861
1859 void FinishPreviousCommitAndDrawWithoutExitingDeadline( 1862 void FinishPreviousCommitAndDrawWithoutExitingDeadline(
1860 StateMachine* state_ptr) { 1863 StateMachine* state_ptr) {
1861 // Gross, but allows us to use macros below. 1864 // Gross, but allows us to use macros below.
(...skipping 264 matching lines...) Expand 10 before | Expand all | Expand 10 after
2126 EXPECT_FALSE(state.ProactiveBeginFrameWanted()); 2129 EXPECT_FALSE(state.ProactiveBeginFrameWanted());
2127 bool commit_has_no_updates = true; 2130 bool commit_has_no_updates = true;
2128 state.WillCommit(commit_has_no_updates); 2131 state.WillCommit(commit_has_no_updates);
2129 EXPECT_TRUE(state.ProactiveBeginFrameWanted()); 2132 EXPECT_TRUE(state.ProactiveBeginFrameWanted());
2130 state.OnBeginImplFrame(); 2133 state.OnBeginImplFrame();
2131 EXPECT_FALSE(state.ProactiveBeginFrameWanted()); 2134 EXPECT_FALSE(state.ProactiveBeginFrameWanted());
2132 } 2135 }
2133 2136
2134 } // namespace 2137 } // namespace
2135 } // namespace cc 2138 } // namespace cc
OLDNEW
« no previous file with comments | « cc/scheduler/scheduler_state_machine.cc ('k') | cc/scheduler/scheduler_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698