This patch combine three patch which is related to "--gcov" flag.
[platform/framework/web/chromium-efl.git] / gin / v8_foreground_task_runner.cc
1 // Copyright 2017 The Chromium Authors
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4
5 #include "gin/v8_foreground_task_runner.h"
6
7 #include "base/functional/bind.h"
8 #include "base/functional/callback_helpers.h"
9 #include "base/task/single_thread_task_runner.h"
10 #include "base/time/time.h"
11
12 namespace gin {
13
14 V8ForegroundTaskRunner::V8ForegroundTaskRunner(
15     scoped_refptr<base::SingleThreadTaskRunner> task_runner)
16     : task_runner_(std::move(task_runner)) {
17   DCHECK(task_runner_);
18 }
19
20 V8ForegroundTaskRunner::~V8ForegroundTaskRunner() = default;
21
22 void V8ForegroundTaskRunner::PostTask(std::unique_ptr<v8::Task> task) {
23   task_runner_->PostTask(FROM_HERE,
24                          base::BindOnce(&v8::Task::Run, std::move(task)));
25 }
26
27 void V8ForegroundTaskRunner::PostNonNestableTask(
28     std::unique_ptr<v8::Task> task) {
29   task_runner_->PostNonNestableTask(
30       FROM_HERE, base::BindOnce(&v8::Task::Run, std::move(task)));
31 }
32
33 void V8ForegroundTaskRunner::PostDelayedTask(std::unique_ptr<v8::Task> task,
34                                              double delay_in_seconds) {
35   task_runner_->PostDelayedTask(FROM_HERE,
36                                 base::BindOnce(&v8::Task::Run, std::move(task)),
37                                 base::Seconds(delay_in_seconds));
38 }
39
40 void V8ForegroundTaskRunner::PostNonNestableDelayedTask(
41     std::unique_ptr<v8::Task> task,
42     double delay_in_seconds) {
43   task_runner_->PostNonNestableDelayedTask(
44       FROM_HERE, base::BindOnce(&v8::Task::Run, std::move(task)),
45       base::Seconds(delay_in_seconds));
46 }
47
48 void V8ForegroundTaskRunner::PostIdleTask(std::unique_ptr<v8::IdleTask> task) {
49   DCHECK(IdleTasksEnabled());
50   idle_task_runner()->PostIdleTask(std::move(task));
51 }
52
53 bool V8ForegroundTaskRunner::NonNestableTasksEnabled() const {
54   return true;
55 }
56
57 bool V8ForegroundTaskRunner::NonNestableDelayedTasksEnabled() const {
58   return true;
59 }
60
61 }  // namespace gin