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

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

Issue 1139613003: cc: Avoid deadlock with the UI thread and NPAPI in more cases (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: address Sunny's comments Created 5 years, 7 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/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 313 matching lines...) Expand 10 before | Expand all | Expand 10 after
324 EXPECT_ACTION_UPDATE_STATE( 324 EXPECT_ACTION_UPDATE_STATE(
325 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME); 325 SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME);
326 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); 326 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
327 327
328 // Verify the pending commit doesn't overwrite the pending 328 // Verify the pending commit doesn't overwrite the pending
329 // tree until the pending tree has been activated. 329 // tree until the pending tree has been activated.
330 state.NotifyBeginMainFrameStarted(); 330 state.NotifyBeginMainFrameStarted();
331 state.NotifyReadyToCommit(); 331 state.NotifyReadyToCommit();
332 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); 332 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
333 333
334 // Verify NotifyReadyToActivate unblocks activation, draw, and 334 // Verify NotifyReadyToActivate unblocks activation, commit, and
335 // commit in that order. 335 // draw in that order.
336 state.NotifyReadyToActivate(); 336 state.NotifyReadyToActivate();
337 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE); 337 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE);
338 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT);
338 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); 339 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
339 340
340 EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineImmediately()); 341 EXPECT_TRUE(state.ShouldTriggerBeginImplFrameDeadlineImmediately());
341 state.OnBeginImplFrameDeadline(); 342 state.OnBeginImplFrameDeadline();
342 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE); 343 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_ANIMATE);
343 EXPECT_ACTION_UPDATE_STATE( 344 EXPECT_ACTION_UPDATE_STATE(
344 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE); 345 SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE);
345 state.DidSwapBuffers(); 346 state.DidSwapBuffers();
346 state.DidSwapBuffersComplete(); 347 state.DidSwapBuffersComplete();
347 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_COMMIT);
348 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE); 348 EXPECT_ACTION_UPDATE_STATE(SchedulerStateMachine::ACTION_NONE);
349 EXPECT_COMMIT_STATE(SchedulerStateMachine::COMMIT_STATE_IDLE); 349 EXPECT_COMMIT_STATE(SchedulerStateMachine::COMMIT_STATE_IDLE);
350 } 350 }
351 351
352 TEST(SchedulerStateMachineTest, 352 TEST(SchedulerStateMachineTest,
353 TestFailedDrawForAnimationCheckerboardSetsNeedsCommitAndDoesNotDrawAgain) { 353 TestFailedDrawForAnimationCheckerboardSetsNeedsCommitAndDoesNotDrawAgain) {
354 SchedulerSettings default_scheduler_settings; 354 SchedulerSettings default_scheduler_settings;
355 StateMachine state(default_scheduler_settings); 355 StateMachine state(default_scheduler_settings);
356 SET_UP_STATE(state) 356 SET_UP_STATE(state)
357 state.SetNeedsRedraw(true); 357 state.SetNeedsRedraw(true);
(...skipping 1610 matching lines...) Expand 10 before | Expand all | Expand 10 after
1968 EXPECT_FALSE(state.ProactiveBeginFrameWanted()); 1968 EXPECT_FALSE(state.ProactiveBeginFrameWanted());
1969 bool commit_has_no_updates = true; 1969 bool commit_has_no_updates = true;
1970 state.UpdateStateOnCommit(commit_has_no_updates); 1970 state.UpdateStateOnCommit(commit_has_no_updates);
1971 EXPECT_TRUE(state.ProactiveBeginFrameWanted()); 1971 EXPECT_TRUE(state.ProactiveBeginFrameWanted());
1972 state.OnBeginImplFrame(); 1972 state.OnBeginImplFrame();
1973 EXPECT_FALSE(state.ProactiveBeginFrameWanted()); 1973 EXPECT_FALSE(state.ProactiveBeginFrameWanted());
1974 } 1974 }
1975 1975
1976 } // namespace 1976 } // namespace
1977 } // namespace cc 1977 } // 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