Index: third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h |
diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h |
index ce486f3ee63766382b47f8f3f4af7d1c57bb4325..a26a2ebd2c14b055836f527799150886888b1c5a 100644 |
--- a/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h |
+++ b/third_party/WebKit/Source/platform/scheduler/renderer/renderer_scheduler_impl.h |
@@ -5,6 +5,8 @@ |
#ifndef THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDULER_IMPL_H_ |
#define THIRD_PARTY_WEBKIT_SOURCE_PLATFORM_SCHEDULER_RENDERER_RENDERER_SCHEDULER_IMPL_H_ |
+#include <memory> |
+ |
#include "base/atomicops.h" |
#include "base/gtest_prod_util.h" |
#include "base/macros.h" |
@@ -83,7 +85,9 @@ class PLATFORM_EXPORT RendererSchedulerImpl |
static const char* UseCaseToString(UseCase use_case); |
static const char* RAILModeToString(v8::RAILMode rail_mode); |
- RendererSchedulerImpl(scoped_refptr<SchedulerTqmDelegate> main_task_runner); |
+ RendererSchedulerImpl( |
+ scoped_refptr<SchedulerTqmDelegate> main_task_runner, |
+ RendererType type = RendererType::kForegroundAndBackground); |
~RendererSchedulerImpl() override; |
// RendererScheduler implementation: |
@@ -455,14 +459,16 @@ class PLATFORM_EXPORT RendererSchedulerImpl |
MainThreadOnly(RendererSchedulerImpl* renderer_scheduler_impl, |
const scoped_refptr<TaskQueue>& compositor_task_runner, |
base::TickClock* time_source, |
- base::TimeTicks now); |
+ base::TimeTicks now, |
+ RendererType type); |
~MainThreadOnly(); |
TaskCostEstimator loading_task_cost_estimator; |
TaskCostEstimator timer_task_cost_estimator; |
IdleTimeEstimator idle_time_estimator; |
- ThreadLoadTracker background_main_thread_load_tracker; |
- ThreadLoadTracker foreground_main_thread_load_tracker; |
+ std::unique_ptr<ThreadLoadTracker> background_main_thread_load_tracker; |
+ std::unique_ptr<ThreadLoadTracker> foreground_main_thread_load_tracker; |
+ std::unique_ptr<ThreadLoadTracker> foreground_only_main_thread_load_tracker; |
UseCase current_use_case; |
Policy current_policy; |
base::TimeTicks current_policy_expiration_time; |
@@ -537,6 +543,8 @@ class PLATFORM_EXPORT RendererSchedulerImpl |
} |
}; |
+ RendererType type_; |
+ |
// Don't access main_thread_only_, instead use MainThreadOnly(). |
MainThreadOnly main_thread_only_; |
MainThreadOnly& GetMainThreadOnly() { |