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

Unified Diff: content/renderer/scheduler/web_scheduler_impl.cc

Issue 962273002: Experimental: Chrome side of killing the blink timer heap (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years, 9 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 | « content/renderer/scheduler/web_scheduler_impl.h ('k') | mojo/services/html_viewer/webscheduler_impl.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: content/renderer/scheduler/web_scheduler_impl.cc
diff --git a/content/renderer/scheduler/web_scheduler_impl.cc b/content/renderer/scheduler/web_scheduler_impl.cc
index 29b253b1cfb78f92c8de70f981ba523167d7db77..d400d63babe0d0a2766d82d2470a44e2b3957146 100644
--- a/content/renderer/scheduler/web_scheduler_impl.cc
+++ b/content/renderer/scheduler/web_scheduler_impl.cc
@@ -14,7 +14,8 @@ namespace content {
WebSchedulerImpl::WebSchedulerImpl(RendererScheduler* renderer_scheduler)
: renderer_scheduler_(renderer_scheduler),
idle_task_runner_(renderer_scheduler_->IdleTaskRunner()),
- loading_task_runner_(renderer_scheduler_->LoadingTaskRunner()) {
+ loading_task_runner_(renderer_scheduler_->LoadingTaskRunner()),
+ timer_task_runner_(renderer_scheduler_->DefaultTaskRunner()) {
}
WebSchedulerImpl::~WebSchedulerImpl() {
@@ -68,6 +69,20 @@ void WebSchedulerImpl::postLoadingTask(
base::Bind(&WebSchedulerImpl::runTask, base::Passed(&scoped_task)));
}
+void WebSchedulerImpl::postTimerTask(
+ const blink::WebTraceLocation& web_location,
+ blink::WebThread::Task* task,
+ long long delayMs) {
+ DCHECK(timer_task_runner_);
+ scoped_ptr<blink::WebThread::Task> scoped_task(task);
+ tracked_objects::Location location(web_location.functionName(),
+ web_location.fileName(), -1, nullptr);
+ timer_task_runner_->PostDelayedTask(
+ location,
+ base::Bind(&WebSchedulerImpl::runTask, base::Passed(&scoped_task)),
+ base::TimeDelta::FromMilliseconds(delayMs));
+}
+
void WebSchedulerImpl::shutdown() {
idle_task_runner_ = nullptr;
loading_task_runner_ = nullptr;
« no previous file with comments | « content/renderer/scheduler/web_scheduler_impl.h ('k') | mojo/services/html_viewer/webscheduler_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698