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

Side by Side Diff: components/scheduler/renderer/renderer_scheduler_impl.cc

Issue 1636513003: Remove the code that prevents task blocking if not expecting frames (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 10 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 | « no previous file | components/scheduler/renderer/renderer_scheduler_impl_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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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 "components/scheduler/renderer/renderer_scheduler_impl.h" 5 #include "components/scheduler/renderer/renderer_scheduler_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/debug/stack_trace.h" 8 #include "base/debug/stack_trace.h"
9 #include "base/logging.h" 9 #include "base/logging.h"
10 #include "base/trace_event/trace_event.h" 10 #include "base/trace_event/trace_event.h"
(...skipping 614 matching lines...) Expand 10 before | Expand all | Expand 10 after
625 } 625 }
626 MainThreadOnly().touchstart_expected_soon = touchstart_expected_soon; 626 MainThreadOnly().touchstart_expected_soon = touchstart_expected_soon;
627 627
628 base::TimeDelta longest_jank_free_task_duration = 628 base::TimeDelta longest_jank_free_task_duration =
629 EstimateLongestJankFreeTaskDuration(); 629 EstimateLongestJankFreeTaskDuration();
630 MainThreadOnly().longest_jank_free_task_duration = 630 MainThreadOnly().longest_jank_free_task_duration =
631 longest_jank_free_task_duration; 631 longest_jank_free_task_duration;
632 632
633 bool loading_tasks_seem_expensive = false; 633 bool loading_tasks_seem_expensive = false;
634 bool timer_tasks_seem_expensive = false; 634 bool timer_tasks_seem_expensive = false;
635 // Only deem tasks to be exensive (which may cause them to be preemptively 635 loading_tasks_seem_expensive =
636 // blocked) if we are expecting frames. 636 MainThreadOnly().loading_task_cost_estimator.expected_task_duration() >
637 if (!MainThreadOnly().begin_frame_not_expected_soon) { 637 longest_jank_free_task_duration;
638 loading_tasks_seem_expensive = 638 timer_tasks_seem_expensive =
639 MainThreadOnly().loading_task_cost_estimator.expected_task_duration() > 639 MainThreadOnly().timer_task_cost_estimator.expected_task_duration() >
640 longest_jank_free_task_duration; 640 longest_jank_free_task_duration;
641 timer_tasks_seem_expensive =
642 MainThreadOnly().timer_task_cost_estimator.expected_task_duration() >
643 longest_jank_free_task_duration;
644 }
645 MainThreadOnly().timer_tasks_seem_expensive = timer_tasks_seem_expensive; 641 MainThreadOnly().timer_tasks_seem_expensive = timer_tasks_seem_expensive;
646 MainThreadOnly().loading_tasks_seem_expensive = loading_tasks_seem_expensive; 642 MainThreadOnly().loading_tasks_seem_expensive = loading_tasks_seem_expensive;
647 643
648 // The |new_policy_duration| is the minimum of |expected_use_case_duration| 644 // The |new_policy_duration| is the minimum of |expected_use_case_duration|
649 // and |touchstart_expected_flag_valid_for_duration| unless one is zero in 645 // and |touchstart_expected_flag_valid_for_duration| unless one is zero in
650 // which case we choose the other. 646 // which case we choose the other.
651 base::TimeDelta new_policy_duration = expected_use_case_duration; 647 base::TimeDelta new_policy_duration = expected_use_case_duration;
652 if (new_policy_duration == base::TimeDelta() || 648 if (new_policy_duration == base::TimeDelta() ||
653 (touchstart_expected_flag_valid_for_duration > base::TimeDelta() && 649 (touchstart_expected_flag_valid_for_duration > base::TimeDelta() &&
654 new_policy_duration > touchstart_expected_flag_valid_for_duration)) { 650 new_policy_duration > touchstart_expected_flag_valid_for_duration)) {
(...skipping 540 matching lines...) Expand 10 before | Expand all | Expand 10 after
1195 } 1191 }
1196 MainThreadOnly().have_reported_blocking_intervention_since_navigation = 1192 MainThreadOnly().have_reported_blocking_intervention_since_navigation =
1197 true; 1193 true;
1198 BroadcastConsoleWarning( 1194 BroadcastConsoleWarning(
1199 "Deferred long-running timer task(s) to improve scrolling smoothness. " 1195 "Deferred long-running timer task(s) to improve scrolling smoothness. "
1200 "See crbug.com/574343."); 1196 "See crbug.com/574343.");
1201 } 1197 }
1202 } 1198 }
1203 1199
1204 } // namespace scheduler 1200 } // namespace scheduler
OLDNEW
« no previous file with comments | « no previous file | components/scheduler/renderer/renderer_scheduler_impl_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698