Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(91)

Unified Diff: components/scheduler/renderer/web_frame_scheduler_impl.cc

Issue 2118783002: scheduler: Add an unthrottled per-frame task runner (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add implementation in EmptyClients Created 4 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « components/scheduler/renderer/web_frame_scheduler_impl.h ('k') | content/test/fake_renderer_scheduler.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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)
« no previous file with comments | « components/scheduler/renderer/web_frame_scheduler_impl.h ('k') | content/test/fake_renderer_scheduler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698