| Index: third_party/WebKit/Source/platform/scheduler/renderer/throttling_helper.cc
|
| diff --git a/third_party/WebKit/Source/platform/scheduler/renderer/throttling_helper.cc b/third_party/WebKit/Source/platform/scheduler/renderer/throttling_helper.cc
|
| index 3e025e9dfdea4fcaa3383231290943d3fce5f0f4..20ff3a1116f6628a01002daf48055ed181c184e0 100644
|
| --- a/third_party/WebKit/Source/platform/scheduler/renderer/throttling_helper.cc
|
| +++ b/third_party/WebKit/Source/platform/scheduler/renderer/throttling_helper.cc
|
| @@ -40,7 +40,7 @@ ThrottlingHelper::~ThrottlingHelper() {
|
| for (const TaskQueueMap::value_type& map_entry : throttled_queues_) {
|
| TaskQueue* task_queue = map_entry.first;
|
| task_queue->SetTimeDomain(renderer_scheduler_->real_time_domain());
|
| - task_queue->SetPumpPolicy(TaskQueue::PumpPolicy::AUTO);
|
| + task_queue->RemoveFence();
|
| }
|
|
|
| renderer_scheduler_->UnregisterTimeDomain(time_domain_.get());
|
| @@ -76,7 +76,7 @@ void ThrottlingHelper::IncreaseThrottleRefCount(TaskQueue* task_queue) {
|
| if (insert_result.second) {
|
| // The insert was succesful so we need to throttle the queue.
|
| task_queue->SetTimeDomain(time_domain_.get());
|
| - task_queue->SetPumpPolicy(TaskQueue::PumpPolicy::MANUAL);
|
| + task_queue->RemoveFence();
|
| task_queue->SetQueueEnabled(false);
|
|
|
| if (!task_queue->IsEmpty()) {
|
| @@ -105,11 +105,15 @@ void ThrottlingHelper::DecreaseThrottleRefCount(TaskQueue* task_queue) {
|
| throttled_queues_.erase(iter);
|
|
|
| task_queue->SetTimeDomain(renderer_scheduler_->real_time_domain());
|
| - task_queue->SetPumpPolicy(TaskQueue::PumpPolicy::AUTO);
|
| + task_queue->RemoveFence();
|
| task_queue->SetQueueEnabled(enabled);
|
| }
|
| }
|
|
|
| +bool ThrottlingHelper::IsThrottled(TaskQueue* task_queue) const {
|
| + return throttled_queues_.find(task_queue) != throttled_queues_.end();
|
| +}
|
| +
|
| void ThrottlingHelper::UnregisterTaskQueue(TaskQueue* task_queue) {
|
| throttled_queues_.erase(task_queue);
|
| }
|
| @@ -145,11 +149,11 @@ void ThrottlingHelper::PumpThrottledTasks() {
|
| LazyNow lazy_low(tick_clock_);
|
| for (const TaskQueueMap::value_type& map_entry : throttled_queues_) {
|
| TaskQueue* task_queue = map_entry.first;
|
| - if (task_queue->IsEmpty())
|
| + if (!map_entry.second.enabled || task_queue->IsEmpty())
|
| continue;
|
|
|
| - task_queue->SetQueueEnabled(map_entry.second.enabled);
|
| - task_queue->PumpQueue(&lazy_low, false);
|
| + task_queue->SetQueueEnabled(true);
|
| + task_queue->InsertFence();
|
| }
|
| // Make sure NextScheduledRunTime gives us an up-to date result.
|
| time_domain_->ClearExpiredWakeups();
|
| @@ -212,7 +216,7 @@ void ThrottlingHelper::EnableVirtualTime() {
|
| throttled_queues_.erase(throttled_queues_.begin());
|
|
|
| task_queue->SetTimeDomain(renderer_scheduler_->GetVirtualTimeDomain());
|
| - task_queue->SetPumpPolicy(TaskQueue::PumpPolicy::AUTO);
|
| + task_queue->RemoveFence();
|
| task_queue->SetQueueEnabled(enabled);
|
| }
|
| }
|
|
|