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

Unified Diff: cc/scheduler/scheduler_state_machine.cc

Issue 816543004: Update from https://crrev.com/308996 (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years 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
« no previous file with comments | « cc/scheduler/scheduler_state_machine.h ('k') | cc/scheduler/scheduler_state_machine_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: cc/scheduler/scheduler_state_machine.cc
diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc
index dc3fa3643aaa9096b92abf0955e45889149d4d71..323def6fb65a709a5f031576f4a7debc0d984bf7 100644
--- a/cc/scheduler/scheduler_state_machine.cc
+++ b/cc/scheduler/scheduler_state_machine.cc
@@ -550,8 +550,8 @@ void SchedulerStateMachine::UpdateState(Action action) {
return;
case ACTION_COMMIT: {
- bool commit_was_aborted = false;
- UpdateStateOnCommit(commit_was_aborted);
+ bool commit_has_no_updates = false;
+ UpdateStateOnCommit(commit_has_no_updates);
return;
}
@@ -586,13 +586,13 @@ void SchedulerStateMachine::UpdateState(Action action) {
}
}
-void SchedulerStateMachine::UpdateStateOnCommit(bool commit_was_aborted) {
+void SchedulerStateMachine::UpdateStateOnCommit(bool commit_has_no_updates) {
commit_count_++;
- if (!commit_was_aborted && HasAnimatedThisFrame())
+ if (!commit_has_no_updates && HasAnimatedThisFrame())
did_commit_after_animating_ = true;
- if (commit_was_aborted || settings_.main_frame_before_activation_enabled) {
+ if (commit_has_no_updates || settings_.main_frame_before_activation_enabled) {
commit_state_ = COMMIT_STATE_IDLE;
} else if (settings_.impl_side_painting) {
commit_state_ = COMMIT_STATE_WAITING_FOR_ACTIVATION;
@@ -604,7 +604,7 @@ void SchedulerStateMachine::UpdateStateOnCommit(bool commit_was_aborted) {
// If we are impl-side-painting but the commit was aborted, then we behave
// mostly as if we are not impl-side-painting since there is no pending tree.
- has_pending_tree_ = settings_.impl_side_painting && !commit_was_aborted;
+ has_pending_tree_ = settings_.impl_side_painting && !commit_has_no_updates;
// Update state related to forced draws.
if (forced_redraw_state_ == FORCED_REDRAW_STATE_WAITING_FOR_COMMIT) {
@@ -627,7 +627,7 @@ void SchedulerStateMachine::UpdateStateOnCommit(bool commit_was_aborted) {
// Update state if we have a new active tree to draw, or if the active tree
// was unchanged but we need to do a forced draw.
if (!has_pending_tree_ &&
- (!commit_was_aborted ||
+ (!commit_has_no_updates ||
forced_redraw_state_ == FORCED_REDRAW_STATE_WAITING_FOR_DRAW)) {
needs_redraw_ = true;
active_tree_needs_first_draw_ = true;
@@ -1025,14 +1025,18 @@ void SchedulerStateMachine::NotifyReadyToCommit() {
DCHECK(ShouldCommit());
}
-void SchedulerStateMachine::BeginMainFrameAborted(bool did_handle) {
+void SchedulerStateMachine::BeginMainFrameAborted(CommitEarlyOutReason reason) {
DCHECK_EQ(commit_state_, COMMIT_STATE_BEGIN_MAIN_FRAME_SENT);
- if (did_handle) {
- bool commit_was_aborted = true;
- UpdateStateOnCommit(commit_was_aborted);
- } else {
- commit_state_ = COMMIT_STATE_IDLE;
- SetNeedsCommit();
+ switch (reason) {
+ case CommitEarlyOutReason::ABORTED_OUTPUT_SURFACE_LOST:
+ case CommitEarlyOutReason::ABORTED_NOT_VISIBLE:
+ commit_state_ = COMMIT_STATE_IDLE;
+ SetNeedsCommit();
+ return;
+ case CommitEarlyOutReason::FINISHED_NO_UPDATES:
+ bool commit_has_no_updates = true;
+ UpdateStateOnCommit(commit_has_no_updates);
+ return;
}
}
« no previous file with comments | « cc/scheduler/scheduler_state_machine.h ('k') | cc/scheduler/scheduler_state_machine_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698