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

Side by Side Diff: third_party/WebKit/Source/platform/scheduler/child/web_task_runner_impl.cc

Issue 2319053004: [Reland] Make canceling Timers fast. (Closed)
Patch Set: Rebased Created 4 years, 3 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 unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "platform/scheduler/child/web_task_runner_impl.h" 5 #include "platform/scheduler/child/web_task_runner_impl.h"
6 6
7 #include "base/bind.h" 7 #include "base/bind.h"
8 #include "base/location.h" 8 #include "base/location.h"
9 #include "base/memory/ptr_util.h" 9 #include "base/memory/ptr_util.h"
10 #include "public/platform/scheduler/base/task_queue.h" 10 #include "public/platform/scheduler/base/task_queue.h"
(...skipping 18 matching lines...) Expand all
29 void WebTaskRunnerImpl::postDelayedTask(const blink::WebTraceLocation& location, 29 void WebTaskRunnerImpl::postDelayedTask(const blink::WebTraceLocation& location,
30 blink::WebTaskRunner::Task* task, 30 blink::WebTaskRunner::Task* task,
31 double delayMs) { 31 double delayMs) {
32 DCHECK_GE(delayMs, 0.0); 32 DCHECK_GE(delayMs, 0.0);
33 task_queue_->PostDelayedTask(location, 33 task_queue_->PostDelayedTask(location,
34 base::Bind(&WebTaskRunnerImpl::runTask, 34 base::Bind(&WebTaskRunnerImpl::runTask,
35 base::Passed(base::WrapUnique(task))), 35 base::Passed(base::WrapUnique(task))),
36 base::TimeDelta::FromMillisecondsD(delayMs)); 36 base::TimeDelta::FromMillisecondsD(delayMs));
37 } 37 }
38 38
39 void WebTaskRunnerImpl::postDelayedTask(const WebTraceLocation& location,
40 const base::Closure& task,
41 double delayMs) {
42 DCHECK_GE(delayMs, 0.0);
43 task_queue_->PostDelayedTask(location, task,
44 base::TimeDelta::FromMillisecondsD(delayMs));
45 }
46
39 bool WebTaskRunnerImpl::runsTasksOnCurrentThread() { 47 bool WebTaskRunnerImpl::runsTasksOnCurrentThread() {
40 return task_queue_->RunsTasksOnCurrentThread(); 48 return task_queue_->RunsTasksOnCurrentThread();
41 } 49 }
42 50
43 double WebTaskRunnerImpl::virtualTimeSeconds() const { 51 double WebTaskRunnerImpl::virtualTimeSeconds() const {
44 return (Now() - base::TimeTicks::UnixEpoch()).InSecondsF(); 52 return (Now() - base::TimeTicks::UnixEpoch()).InSecondsF();
45 } 53 }
46 54
47 double WebTaskRunnerImpl::monotonicallyIncreasingVirtualTimeSeconds() const { 55 double WebTaskRunnerImpl::monotonicallyIncreasingVirtualTimeSeconds() const {
48 return Now().ToInternalValue() / 56 return Now().ToInternalValue() /
(...skipping 17 matching lines...) Expand all
66 return task_queue_.get(); 74 return task_queue_.get();
67 } 75 }
68 76
69 void WebTaskRunnerImpl::runTask( 77 void WebTaskRunnerImpl::runTask(
70 std::unique_ptr<blink::WebTaskRunner::Task> task) { 78 std::unique_ptr<blink::WebTaskRunner::Task> task) {
71 task->run(); 79 task->run();
72 } 80 }
73 81
74 } // namespace scheduler 82 } // namespace scheduler
75 } // namespace blink 83 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698