Chromium Code Reviews| Index: components/scheduler/renderer/web_frame_scheduler_impl.cc |
| diff --git a/components/scheduler/renderer/web_frame_scheduler_impl.cc b/components/scheduler/renderer/web_frame_scheduler_impl.cc |
| index fba6b691b5c96ded5f4c44566bfd3f9bd137b95e..e587898b647e3f99782f2e22c9db7388a3034e43 100644 |
| --- a/components/scheduler/renderer/web_frame_scheduler_impl.cc |
| +++ b/components/scheduler/renderer/web_frame_scheduler_impl.cc |
| @@ -37,6 +37,11 @@ WebFrameSchedulerImpl::~WebFrameSchedulerImpl() { |
| timer_task_queue_->SetBlameContext(nullptr); |
| } |
| + if (unthrottled_task_queue_.get()) { |
|
dcheng
2016/07/04 06:52:35
Nit: no .get() here
Sami
2016/07/04 09:28:43
Done.
|
| + unthrottled_task_queue_->UnregisterTaskQueue(); |
| + unthrottled_task_queue_->SetBlameContext(nullptr); |
| + } |
| + |
| if (parent_web_view_scheduler_) |
| parent_web_view_scheduler_->Unregister(this); |
| } |
| @@ -83,6 +88,22 @@ blink::WebTaskRunner* WebFrameSchedulerImpl::timerTaskRunner() { |
| return timer_web_task_runner_.get(); |
| } |
| +blink::WebTaskRunner* WebFrameSchedulerImpl::unthrottledTaskRunner() { |
| + DCHECK(parent_web_view_scheduler_); |
| + if (!unthrottled_web_task_runner_) { |
| + unthrottled_task_queue_ = |
| + renderer_scheduler_->NewUnthrottledTaskRunner("frame_unthrottled_tq"); |
| + unthrottled_task_queue_->SetBlameContext(blame_context_); |
| + if (parent_web_view_scheduler_->virtual_time_domain()) { |
| + unthrottled_task_queue_->SetTimeDomain( |
| + parent_web_view_scheduler_->virtual_time_domain()); |
| + } |
| + unthrottled_web_task_runner_.reset( |
| + new WebTaskRunnerImpl(unthrottled_task_queue_)); |
| + } |
| + return unthrottled_web_task_runner_.get(); |
| +} |
| + |
| void WebFrameSchedulerImpl::setPageVisible(bool page_visible) { |
| DCHECK(parent_web_view_scheduler_); |
| if (page_visible_ == page_visible) |