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

Unified Diff: components/scheduler/renderer/renderer_scheduler_impl.cc

Issue 1587663003: scheduler: Turn expensive task blocking into a finch trial (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: html_viewer fix. Created 4 years, 11 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 side-by-side diff with in-line comments
Download patch
Index: components/scheduler/renderer/renderer_scheduler_impl.cc
diff --git a/components/scheduler/renderer/renderer_scheduler_impl.cc b/components/scheduler/renderer/renderer_scheduler_impl.cc
index 98e4209c0eec07e99c79b8d2b299f3bd16f28598..55efbf6f810b7c0654fe31fb73698781ec5f746c 100644
--- a/components/scheduler/renderer/renderer_scheduler_impl.cc
+++ b/components/scheduler/renderer/renderer_scheduler_impl.cc
@@ -127,7 +127,8 @@ RendererSchedulerImpl::MainThreadOnly::MainThreadOnly(
touchstart_expected_soon(false),
have_seen_a_begin_main_frame(false),
has_visible_render_widget_with_touch_handler(false),
- begin_frame_not_expected_soon(false) {}
+ begin_frame_not_expected_soon(false),
+ expensive_task_blocking_allowed(true) {}
RendererSchedulerImpl::MainThreadOnly::~MainThreadOnly() {}
@@ -718,6 +719,11 @@ void RendererSchedulerImpl::UpdatePolicyLocked(UpdateType update_type) {
NOTREACHED();
}
+ if (!MainThreadOnly().expensive_task_blocking_allowed) {
+ block_expensive_loading_tasks = false;
+ block_expensive_timer_tasks = false;
+ }
+
// Don't block expensive tasks unless we have actually seen something.
if (!MainThreadOnly().have_seen_a_begin_main_frame) {
block_expensive_loading_tasks = false;
@@ -1083,6 +1089,10 @@ void RendererSchedulerImpl::UnregisterTimeDomain(TimeDomain* time_domain) {
helper_.UnregisterTimeDomain(time_domain);
}
+void RendererSchedulerImpl::SetExpensiveTaskBlockingAllowed(bool allowed) {
+ MainThreadOnly().expensive_task_blocking_allowed = allowed;
+}
+
base::TickClock* RendererSchedulerImpl::tick_clock() const {
return helper_.scheduler_tqm_delegate().get();
}

Powered by Google App Engine
This is Rietveld 408576698