| 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..1b4a45579bc0aaef1225291de4f14d959e1db2c1 100644
|
| --- a/components/scheduler/renderer/web_frame_scheduler_impl.cc
|
| +++ b/components/scheduler/renderer/web_frame_scheduler_impl.cc
|
| @@ -27,16 +27,21 @@ WebFrameSchedulerImpl::WebFrameSchedulerImpl(
|
| page_visible_(true) {}
|
|
|
| WebFrameSchedulerImpl::~WebFrameSchedulerImpl() {
|
| - if (loading_task_queue_.get()) {
|
| + if (loading_task_queue_) {
|
| loading_task_queue_->UnregisterTaskQueue();
|
| loading_task_queue_->SetBlameContext(nullptr);
|
| }
|
|
|
| - if (timer_task_queue_.get()) {
|
| + if (timer_task_queue_) {
|
| timer_task_queue_->UnregisterTaskQueue();
|
| timer_task_queue_->SetBlameContext(nullptr);
|
| }
|
|
|
| + if (unthrottled_task_queue_) {
|
| + 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)
|
|
|