| Index: cc/scheduler/scheduler_state_machine.cc
|
| diff --git a/cc/scheduler/scheduler_state_machine.cc b/cc/scheduler/scheduler_state_machine.cc
|
| index 01252dd7aff1c21a0330eb5c9598a567658a6eb1..3dce1426923c3962f8b68677ad75f909bdab4486 100644
|
| --- a/cc/scheduler/scheduler_state_machine.cc
|
| +++ b/cc/scheduler/scheduler_state_machine.cc
|
| @@ -430,7 +430,14 @@ void SchedulerStateMachine::SetHasPendingTree(bool has_pending_tree) {
|
| void SchedulerStateMachine::SetCanDraw(bool can) { can_draw_ = can; }
|
|
|
| void SchedulerStateMachine::DidCreateAndInitializeOutputSurface() {
|
| - DCHECK_EQ(output_surface_state_, OUTPUT_SURFACE_CREATING);
|
| + DCHECK(output_surface_state_ == OUTPUT_SURFACE_CREATING ||
|
| + output_surface_state_ == OUTPUT_SURFACE_ACTIVE);
|
| +
|
| + // This can be called from LayerTreeHost::DeferredInitialize while an output
|
| + // surface is already active.
|
| + if (output_surface_state_ == OUTPUT_SURFACE_ACTIVE)
|
| + return;
|
| +
|
| output_surface_state_ = OUTPUT_SURFACE_ACTIVE;
|
|
|
| if (did_create_and_initialize_first_output_surface_) {
|
|
|