| 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 66cdc886167e622381ad39b1fad9a09e65dfa85c..47ad9d5d75303b369fe27f4617274d7d576af3c3 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
|
| @@ -8,6 +8,7 @@
|
| #include "base/atomicops.h"
|
| #include "base/macros.h"
|
| #include "base/synchronization/lock.h"
|
| +#include "device/base/synchronization/shared_memory_seqlock_buffer.h"
|
| #include "platform/scheduler/base/pollable_thread_safe_flag.h"
|
| #include "platform/scheduler/base/queueing_time_estimator.h"
|
| #include "platform/scheduler/base/thread_load_tracker.h"
|
| @@ -122,6 +123,7 @@ class BLINK_PLATFORM_EXPORT RendererSchedulerImpl
|
| void SetTopLevelBlameContext(
|
| base::trace_event::BlameContext* blame_context) override;
|
| void SetRAILModeObserver(RAILModeObserver* observer) override;
|
| + bool ShouldForceEventsNonBlockingForUnresponsiveMainThread() const override;
|
|
|
| // RenderWidgetSignals::Observer implementation:
|
| void SetAllRenderWidgetsHidden(bool hidden) override;
|
| @@ -134,9 +136,10 @@ class BLINK_PLATFORM_EXPORT RendererSchedulerImpl
|
| const base::PendingTask& task) override;
|
|
|
| // TaskTimeObserver implementation:
|
| - void ReportTaskTime(TaskQueue* task_queue,
|
| - double start_time,
|
| - double end_time) override;
|
| + void ReportTaskStartTime(double start_time) override;
|
| + void ReportTaskEndTime(TaskQueue* task_queue,
|
| + double start_time,
|
| + double end_time) override;
|
|
|
| // QueueingTimeEstimator::Client implementation:
|
| void OnQueueingTimeForWindowEstimated(base::TimeDelta queueing_time) override;
|
| @@ -368,6 +371,11 @@ class BLINK_PLATFORM_EXPORT RendererSchedulerImpl
|
| CancelableClosureHolder end_renderer_hidden_idle_period_closure_;
|
| CancelableClosureHolder suspend_timers_when_backgrounded_closure_;
|
|
|
| + using SeqLockQueueingTimeEstimator =
|
| + device::SharedMemorySeqLockBuffer<QueueingTimeEstimator>;
|
| +
|
| + SeqLockQueueingTimeEstimator seqlock_queueing_time_estimator_;
|
| +
|
| // We have decided to improve thread safety at the cost of some boilerplate
|
| // (the accessors) for the following data members.
|
|
|
| @@ -380,7 +388,7 @@ class BLINK_PLATFORM_EXPORT RendererSchedulerImpl
|
|
|
| TaskCostEstimator loading_task_cost_estimator;
|
| TaskCostEstimator timer_task_cost_estimator;
|
| - QueueingTimeEstimator queueing_time_estimator;
|
| + // QueueingTimeEstimator queueing_time_estimator; // TODO
|
| IdleTimeEstimator idle_time_estimator;
|
| ThreadLoadTracker background_main_thread_load_tracker;
|
| ThreadLoadTracker foreground_main_thread_load_tracker;
|
| @@ -388,6 +396,7 @@ class BLINK_PLATFORM_EXPORT RendererSchedulerImpl
|
| Policy current_policy;
|
| base::TimeTicks current_policy_expiration_time;
|
| base::TimeTicks estimated_next_frame_begin;
|
| + base::TimeTicks current_task_start_time;
|
| base::TimeDelta compositor_frame_interval;
|
| base::TimeDelta longest_jank_free_task_duration;
|
| int timer_queue_suspend_count; // TIMER_TASK_QUEUE suspended if non-zero.
|
| @@ -414,7 +423,7 @@ class BLINK_PLATFORM_EXPORT RendererSchedulerImpl
|
| };
|
|
|
| struct AnyThread {
|
| - AnyThread();
|
| + AnyThread(RendererSchedulerImpl* renderer_scheduler_impl);
|
| ~AnyThread();
|
|
|
| base::TimeTicks last_idle_period_end_time;
|
|
|