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

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

Issue 1028333002: Chromium -> Mojo roll. (Closed) Base URL: https://github.com/domokit/mojo.git@master
Patch Set: Created 5 years, 9 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/resources/tile_task_worker_pool_unittest.cc ('k') | cc/scheduler/scheduler_settings.h » ('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.h" 5 #include "cc/scheduler/scheduler.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/auto_reset.h" 9 #include "base/auto_reset.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 begin_impl_frame_args_.deadline); 297 begin_impl_frame_args_.deadline);
298 int64 intervals = 1 + ((now - timebase) / begin_impl_frame_args_.interval); 298 int64 intervals = 1 + ((now - timebase) / begin_impl_frame_args_.interval);
299 return timebase + (begin_impl_frame_args_.interval * intervals); 299 return timebase + (begin_impl_frame_args_.interval * intervals);
300 } 300 }
301 301
302 base::TimeTicks Scheduler::LastBeginImplFrameTime() { 302 base::TimeTicks Scheduler::LastBeginImplFrameTime() {
303 return begin_impl_frame_args_.frame_time; 303 return begin_impl_frame_args_.frame_time;
304 } 304 }
305 305
306 void Scheduler::SetupNextBeginFrameIfNeeded() { 306 void Scheduler::SetupNextBeginFrameIfNeeded() {
307 if (!task_runner_.get()) 307 // Never call SetNeedsBeginFrames if the frame source already has the right
308 return; 308 // value.
309 309 if (frame_source_->NeedsBeginFrames() != state_machine_.BeginFrameNeeded()) {
310 if (state_machine_.ShouldSetNeedsBeginFrames( 310 if (state_machine_.BeginFrameNeeded()) {
311 frame_source_->NeedsBeginFrames())) { 311 // Call SetNeedsBeginFrames(true) as soon as possible.
312 frame_source_->SetNeedsBeginFrames(state_machine_.BeginFrameNeeded()); 312 frame_source_->SetNeedsBeginFrames(true);
313 if (!frame_source_->NeedsBeginFrames()) { 313 } else if (state_machine_.begin_impl_frame_state() ==
314 SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_IDLE) {
315 // Call SetNeedsBeginFrames(false) in between frames only.
316 frame_source_->SetNeedsBeginFrames(false);
314 client_->SendBeginMainFrameNotExpectedSoon(); 317 client_->SendBeginMainFrameNotExpectedSoon();
315 } 318 }
316 } 319 }
317 320
318 if (state_machine_.begin_impl_frame_state() ==
319 SchedulerStateMachine::BEGIN_IMPL_FRAME_STATE_INSIDE_DEADLINE) {
320 frame_source_->DidFinishFrame(begin_retro_frame_args_.size());
321 }
322
323 PostBeginRetroFrameIfNeeded(); 321 PostBeginRetroFrameIfNeeded();
324 SetupPollingMechanisms();
325 } 322 }
326 323
327 // We may need to poll when we can't rely on BeginFrame to advance certain 324 // We may need to poll when we can't rely on BeginFrame to advance certain
328 // state or to avoid deadlock. 325 // state or to avoid deadlock.
329 void Scheduler::SetupPollingMechanisms() { 326 void Scheduler::SetupPollingMechanisms() {
330 bool needs_advance_commit_state_timer = false; 327 bool needs_advance_commit_state_timer = false;
331 // Setup PollForAnticipatedDrawTriggers if we need to monitor state but 328 // Setup PollForAnticipatedDrawTriggers if we need to monitor state but
332 // aren't expecting any more BeginFrames. This should only be needed by 329 // aren't expecting any more BeginFrames. This should only be needed by
333 // the synchronous compositor when BeginFrameNeeded is false. 330 // the synchronous compositor when BeginFrameNeeded is false.
334 if (state_machine_.ShouldPollForAnticipatedDrawTriggers()) { 331 if (state_machine_.ShouldPollForAnticipatedDrawTriggers()) {
(...skipping 195 matching lines...) Expand 10 before | Expand all | Expand 10 after
530 527
531 begin_impl_frame_args_ = args; 528 begin_impl_frame_args_ = args;
532 begin_impl_frame_args_.deadline -= client_->DrawDurationEstimate(); 529 begin_impl_frame_args_.deadline -= client_->DrawDurationEstimate();
533 530
534 if (!state_machine_.impl_latency_takes_priority() && 531 if (!state_machine_.impl_latency_takes_priority() &&
535 main_thread_is_in_high_latency_mode && 532 main_thread_is_in_high_latency_mode &&
536 CanCommitAndActivateBeforeDeadline()) { 533 CanCommitAndActivateBeforeDeadline()) {
537 state_machine_.SetSkipNextBeginMainFrameToReduceLatency(); 534 state_machine_.SetSkipNextBeginMainFrameToReduceLatency();
538 } 535 }
539 536
540 state_machine_.OnBeginImplFrame(begin_impl_frame_args_); 537 state_machine_.OnBeginImplFrame();
541 devtools_instrumentation::DidBeginFrame(layer_tree_host_id_); 538 devtools_instrumentation::DidBeginFrame(layer_tree_host_id_);
542 client_->WillBeginImplFrame(begin_impl_frame_args_); 539 client_->WillBeginImplFrame(begin_impl_frame_args_);
543 540
544 ProcessScheduledActions(); 541 ProcessScheduledActions();
545 542
546 state_machine_.OnBeginImplFrameDeadlinePending(); 543 state_machine_.OnBeginImplFrameDeadlinePending();
547 544
548 if (settings_.using_synchronous_renderer_compositor) { 545 if (settings_.using_synchronous_renderer_compositor) {
549 // The synchronous renderer compositor has to make its GL calls 546 // The synchronous renderer compositor has to make its GL calls
550 // within this call. 547 // within this call.
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
620 // order to wait for more user-input before starting the next commit. 617 // order to wait for more user-input before starting the next commit.
621 // * Creating a new OuputSurface will not occur during the deadline in 618 // * Creating a new OuputSurface will not occur during the deadline in
622 // order to allow the state machine to "settle" first. 619 // order to allow the state machine to "settle" first.
623 620
624 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is fixed. 621 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is fixed.
625 tracked_objects::ScopedTracker tracking_profile1( 622 tracked_objects::ScopedTracker tracking_profile1(
626 FROM_HERE_WITH_EXPLICIT_FUNCTION( 623 FROM_HERE_WITH_EXPLICIT_FUNCTION(
627 "461509 Scheduler::OnBeginImplFrameDeadline1")); 624 "461509 Scheduler::OnBeginImplFrameDeadline1"));
628 state_machine_.OnBeginImplFrameDeadline(); 625 state_machine_.OnBeginImplFrameDeadline();
629 ProcessScheduledActions(); 626 ProcessScheduledActions();
630
631 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is fixed.
632 tracked_objects::ScopedTracker tracking_profile2(
633 FROM_HERE_WITH_EXPLICIT_FUNCTION(
634 "461509 Scheduler::OnBeginImplFrameDeadline2"));
635 state_machine_.OnBeginImplFrameIdle(); 627 state_machine_.OnBeginImplFrameIdle();
636 ProcessScheduledActions(); 628 ProcessScheduledActions();
637 629
638 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is fixed.
639 tracked_objects::ScopedTracker tracking_profile3(
640 FROM_HERE_WITH_EXPLICIT_FUNCTION(
641 "461509 Scheduler::OnBeginImplFrameDeadline3"));
642 client_->DidBeginImplFrameDeadline(); 630 client_->DidBeginImplFrameDeadline();
631 frame_source_->DidFinishFrame(begin_retro_frame_args_.size());
643 } 632 }
644 633
645 void Scheduler::PollForAnticipatedDrawTriggers() { 634 void Scheduler::PollForAnticipatedDrawTriggers() {
646 TRACE_EVENT0("cc", "Scheduler::PollForAnticipatedDrawTriggers"); 635 TRACE_EVENT0("cc", "Scheduler::PollForAnticipatedDrawTriggers");
647 poll_for_draw_triggers_task_.Cancel(); 636 poll_for_draw_triggers_task_.Cancel();
648 state_machine_.DidEnterPollForAnticipatedDrawTriggers(); 637 state_machine_.DidEnterPollForAnticipatedDrawTriggers();
649 ProcessScheduledActions(); 638 ProcessScheduledActions();
650 state_machine_.DidLeavePollForAnticipatedDrawTriggers(); 639 state_machine_.DidLeavePollForAnticipatedDrawTriggers();
651 } 640 }
652 641
(...skipping 19 matching lines...) Expand all
672 void Scheduler::ProcessScheduledActions() { 661 void Scheduler::ProcessScheduledActions() {
673 // We do not allow ProcessScheduledActions to be recursive. 662 // We do not allow ProcessScheduledActions to be recursive.
674 // The top-level call will iteratively execute the next action for us anyway. 663 // The top-level call will iteratively execute the next action for us anyway.
675 if (inside_process_scheduled_actions_) 664 if (inside_process_scheduled_actions_)
676 return; 665 return;
677 666
678 base::AutoReset<bool> mark_inside(&inside_process_scheduled_actions_, true); 667 base::AutoReset<bool> mark_inside(&inside_process_scheduled_actions_, true);
679 668
680 SchedulerStateMachine::Action action; 669 SchedulerStateMachine::Action action;
681 do { 670 do {
682 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is fixed.
683 tracked_objects::ScopedTracker tracking_profile1(
684 FROM_HERE_WITH_EXPLICIT_FUNCTION(
685 "461509 Scheduler::ProcessScheduledActions1"));
686 action = state_machine_.NextAction(); 671 action = state_machine_.NextAction();
687 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("cc.debug.scheduler"), 672 TRACE_EVENT1(TRACE_DISABLED_BY_DEFAULT("cc.debug.scheduler"),
688 "SchedulerStateMachine", 673 "SchedulerStateMachine",
689 "state", 674 "state",
690 AsValue()); 675 AsValue());
691 VLOG(2) << "Scheduler::ProcessScheduledActions: " 676 VLOG(2) << "Scheduler::ProcessScheduledActions: "
692 << SchedulerStateMachine::ActionToString(action) << " " 677 << SchedulerStateMachine::ActionToString(action) << " "
693 << state_machine_.GetStatesForDebugging(); 678 << state_machine_.GetStatesForDebugging();
694 state_machine_.UpdateState(action); 679 state_machine_.UpdateState(action);
695 base::AutoReset<SchedulerStateMachine::Action> 680 base::AutoReset<SchedulerStateMachine::Action>
696 mark_inside_action(&inside_action_, action); 681 mark_inside_action(&inside_action_, action);
697 switch (action) { 682 switch (action) {
698 case SchedulerStateMachine::ACTION_NONE: 683 case SchedulerStateMachine::ACTION_NONE:
699 break; 684 break;
700 case SchedulerStateMachine::ACTION_ANIMATE: { 685 case SchedulerStateMachine::ACTION_ANIMATE:
701 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is
702 // fixed.
703 tracked_objects::ScopedTracker tracking_profile2(
704 FROM_HERE_WITH_EXPLICIT_FUNCTION(
705 "461509 Scheduler::ProcessScheduledActions2"));
706 client_->ScheduledActionAnimate(); 686 client_->ScheduledActionAnimate();
707 break; 687 break;
708 } 688 case SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME:
709 case SchedulerStateMachine::ACTION_SEND_BEGIN_MAIN_FRAME: {
710 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is
711 // fixed.
712 tracked_objects::ScopedTracker tracking_profile3(
713 FROM_HERE_WITH_EXPLICIT_FUNCTION(
714 "461509 Scheduler::ProcessScheduledActions3"));
715 client_->ScheduledActionSendBeginMainFrame(); 689 client_->ScheduledActionSendBeginMainFrame();
716 break; 690 break;
717 }
718 case SchedulerStateMachine::ACTION_COMMIT: { 691 case SchedulerStateMachine::ACTION_COMMIT: {
719 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is 692 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is
720 // fixed. 693 // fixed.
721 tracked_objects::ScopedTracker tracking_profile4( 694 tracked_objects::ScopedTracker tracking_profile4(
722 FROM_HERE_WITH_EXPLICIT_FUNCTION( 695 FROM_HERE_WITH_EXPLICIT_FUNCTION(
723 "461509 Scheduler::ProcessScheduledActions4")); 696 "461509 Scheduler::ProcessScheduledActions4"));
724 client_->ScheduledActionCommit(); 697 client_->ScheduledActionCommit();
725 break; 698 break;
726 } 699 }
727 case SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE: { 700 case SchedulerStateMachine::ACTION_ACTIVATE_SYNC_TREE:
728 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is
729 // fixed.
730 tracked_objects::ScopedTracker tracking_profile5(
731 FROM_HERE_WITH_EXPLICIT_FUNCTION(
732 "461509 Scheduler::ProcessScheduledActions5"));
733 client_->ScheduledActionActivateSyncTree(); 701 client_->ScheduledActionActivateSyncTree();
734 break; 702 break;
735 }
736 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE: { 703 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_IF_POSSIBLE: {
737 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is 704 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is
738 // fixed. 705 // fixed.
739 tracked_objects::ScopedTracker tracking_profile6( 706 tracked_objects::ScopedTracker tracking_profile6(
740 FROM_HERE_WITH_EXPLICIT_FUNCTION( 707 FROM_HERE_WITH_EXPLICIT_FUNCTION(
741 "461509 Scheduler::ProcessScheduledActions6")); 708 "461509 Scheduler::ProcessScheduledActions6"));
742 DrawAndSwapIfPossible(); 709 DrawAndSwapIfPossible();
743 break; 710 break;
744 } 711 }
745 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED: { 712 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_FORCED:
746 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is
747 // fixed.
748 tracked_objects::ScopedTracker tracking_profile7(
749 FROM_HERE_WITH_EXPLICIT_FUNCTION(
750 "461509 Scheduler::ProcessScheduledActions7"));
751 client_->ScheduledActionDrawAndSwapForced(); 713 client_->ScheduledActionDrawAndSwapForced();
752 break; 714 break;
753 }
754 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT: 715 case SchedulerStateMachine::ACTION_DRAW_AND_SWAP_ABORT:
755 // No action is actually performed, but this allows the state machine to 716 // No action is actually performed, but this allows the state machine to
756 // advance out of its waiting to draw state without actually drawing. 717 // advance out of its waiting to draw state without actually drawing.
757 break; 718 break;
758 case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION: { 719 case SchedulerStateMachine::ACTION_BEGIN_OUTPUT_SURFACE_CREATION:
759 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is
760 // fixed.
761 tracked_objects::ScopedTracker tracking_profile8(
762 FROM_HERE_WITH_EXPLICIT_FUNCTION(
763 "461509 Scheduler::ProcessScheduledActions8"));
764 client_->ScheduledActionBeginOutputSurfaceCreation(); 720 client_->ScheduledActionBeginOutputSurfaceCreation();
765 break; 721 break;
766 } 722 case SchedulerStateMachine::ACTION_PREPARE_TILES:
767 case SchedulerStateMachine::ACTION_PREPARE_TILES: {
768 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is
769 // fixed.
770 tracked_objects::ScopedTracker tracking_profile9(
771 FROM_HERE_WITH_EXPLICIT_FUNCTION(
772 "461509 Scheduler::ProcessScheduledActions9"));
773 client_->ScheduledActionPrepareTiles(); 723 client_->ScheduledActionPrepareTiles();
774 break; 724 break;
775 }
776 } 725 }
777 } while (action != SchedulerStateMachine::ACTION_NONE); 726 } while (action != SchedulerStateMachine::ACTION_NONE);
778 727
779 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is fixed. 728 SetupPollingMechanisms();
780 tracked_objects::ScopedTracker tracking_profile10( 729
781 FROM_HERE_WITH_EXPLICIT_FUNCTION(
782 "461509 Scheduler::ProcessScheduledActions10"));
783 SetupNextBeginFrameIfNeeded();
784 client_->DidAnticipatedDrawTimeChange(AnticipatedDrawTime()); 730 client_->DidAnticipatedDrawTimeChange(AnticipatedDrawTime());
785 731
786 // TODO(robliao): Remove ScopedTracker below once crbug.com/461509 is fixed.
787 tracked_objects::ScopedTracker tracking_profile11(
788 FROM_HERE_WITH_EXPLICIT_FUNCTION(
789 "461509 Scheduler::ProcessScheduledActions11"));
790 RescheduleBeginImplFrameDeadlineIfNeeded(); 732 RescheduleBeginImplFrameDeadlineIfNeeded();
733
734 SetupNextBeginFrameIfNeeded();
791 } 735 }
792 736
793 scoped_refptr<base::trace_event::ConvertableToTraceFormat> Scheduler::AsValue() 737 scoped_refptr<base::trace_event::ConvertableToTraceFormat> Scheduler::AsValue()
794 const { 738 const {
795 scoped_refptr<base::trace_event::TracedValue> state = 739 scoped_refptr<base::trace_event::TracedValue> state =
796 new base::trace_event::TracedValue(); 740 new base::trace_event::TracedValue();
797 AsValueInto(state.get()); 741 AsValueInto(state.get());
798 return state; 742 return state;
799 } 743 }
800 744
801 void Scheduler::AsValueInto(base::trace_event::TracedValue* state) const { 745 void Scheduler::AsValueInto(base::trace_event::TracedValue* state) const {
802 state->BeginDictionary("state_machine"); 746 state->BeginDictionary("state_machine");
803 state_machine_.AsValueInto(state, Now()); 747 state_machine_.AsValueInto(state);
804 state->EndDictionary(); 748 state->EndDictionary();
805 749
806 // Only trace frame sources when explicitly enabled - http://crbug.com/420607 750 // Only trace frame sources when explicitly enabled - http://crbug.com/420607
807 bool frame_tracing_enabled = false; 751 bool frame_tracing_enabled = false;
808 TRACE_EVENT_CATEGORY_GROUP_ENABLED( 752 TRACE_EVENT_CATEGORY_GROUP_ENABLED(
809 TRACE_DISABLED_BY_DEFAULT("cc.debug.scheduler.frames"), 753 TRACE_DISABLED_BY_DEFAULT("cc.debug.scheduler.frames"),
810 &frame_tracing_enabled); 754 &frame_tracing_enabled);
811 if (frame_tracing_enabled) { 755 if (frame_tracing_enabled) {
812 state->BeginDictionary("frame_source_"); 756 state->BeginDictionary("frame_source_");
813 frame_source_->AsValueInto(state); 757 frame_source_->AsValueInto(state);
(...skipping 13 matching lines...) Expand all
827 state->SetBoolean("begin_impl_frame_deadline_task_", 771 state->SetBoolean("begin_impl_frame_deadline_task_",
828 !begin_impl_frame_deadline_task_.IsCancelled()); 772 !begin_impl_frame_deadline_task_.IsCancelled());
829 state->SetBoolean("poll_for_draw_triggers_task_", 773 state->SetBoolean("poll_for_draw_triggers_task_",
830 !poll_for_draw_triggers_task_.IsCancelled()); 774 !poll_for_draw_triggers_task_.IsCancelled());
831 state->SetBoolean("advance_commit_state_task_", 775 state->SetBoolean("advance_commit_state_task_",
832 !advance_commit_state_task_.IsCancelled()); 776 !advance_commit_state_task_.IsCancelled());
833 state->BeginDictionary("begin_impl_frame_args"); 777 state->BeginDictionary("begin_impl_frame_args");
834 begin_impl_frame_args_.AsValueInto(state); 778 begin_impl_frame_args_.AsValueInto(state);
835 state->EndDictionary(); 779 state->EndDictionary();
836 780
781 base::TimeTicks now = Now();
782 base::TimeTicks frame_time = begin_impl_frame_args_.frame_time;
783 base::TimeTicks deadline = begin_impl_frame_args_.deadline;
784 base::TimeDelta interval = begin_impl_frame_args_.interval;
785 state->BeginDictionary("major_timestamps_in_ms");
786 state->SetDouble("0_interval", interval.InMillisecondsF());
787 state->SetDouble("1_now_to_deadline", (deadline - now).InMillisecondsF());
788 state->SetDouble("2_frame_time_to_now", (now - frame_time).InMillisecondsF());
789 state->SetDouble("3_frame_time_to_deadline",
790 (deadline - frame_time).InMillisecondsF());
791 state->SetDouble("4_now", (now - base::TimeTicks()).InMillisecondsF());
792 state->SetDouble("5_frame_time",
793 (frame_time - base::TimeTicks()).InMillisecondsF());
794 state->SetDouble("6_deadline",
795 (deadline - base::TimeTicks()).InMillisecondsF());
796 state->EndDictionary();
797
837 state->EndDictionary(); 798 state->EndDictionary();
838 799
839 state->BeginDictionary("client_state"); 800 state->BeginDictionary("client_state");
840 state->SetDouble("draw_duration_estimate_ms", 801 state->SetDouble("draw_duration_estimate_ms",
841 client_->DrawDurationEstimate().InMillisecondsF()); 802 client_->DrawDurationEstimate().InMillisecondsF());
842 state->SetDouble( 803 state->SetDouble(
843 "begin_main_frame_to_commit_duration_estimate_ms", 804 "begin_main_frame_to_commit_duration_estimate_ms",
844 client_->BeginMainFrameToCommitDurationEstimate().InMillisecondsF()); 805 client_->BeginMainFrameToCommitDurationEstimate().InMillisecondsF());
845 state->SetDouble( 806 state->SetDouble(
846 "commit_to_activate_duration_estimate_ms", 807 "commit_to_activate_duration_estimate_ms",
(...skipping 21 matching lines...) Expand all
868 } 829 }
869 830
870 bool Scheduler::IsBeginMainFrameSentOrStarted() const { 831 bool Scheduler::IsBeginMainFrameSentOrStarted() const {
871 return (state_machine_.commit_state() == 832 return (state_machine_.commit_state() ==
872 SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_SENT || 833 SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_SENT ||
873 state_machine_.commit_state() == 834 state_machine_.commit_state() ==
874 SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_STARTED); 835 SchedulerStateMachine::COMMIT_STATE_BEGIN_MAIN_FRAME_STARTED);
875 } 836 }
876 837
877 } // namespace cc 838 } // namespace cc
OLDNEW
« no previous file with comments | « cc/resources/tile_task_worker_pool_unittest.cc ('k') | cc/scheduler/scheduler_settings.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698