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.
5 #ifndef GIN_V8_FOREGROUND_TASK_RUNNER_H_
6 #define GIN_V8_FOREGROUND_TASK_RUNNER_H_
8 #include "base/memory/ref_counted.h"
9 #include "gin/v8_foreground_task_runner_base.h"
12 class SingleThreadTaskRunner;
17 class V8ForegroundTaskRunner : public V8ForegroundTaskRunnerBase {
19 V8ForegroundTaskRunner(
20 scoped_refptr<base::SingleThreadTaskRunner> task_runner);
22 ~V8ForegroundTaskRunner() override;
24 // v8::Platform implementation.
25 void PostTask(std::unique_ptr<v8::Task> task) override;
27 void PostNonNestableTask(std::unique_ptr<v8::Task> task) override;
29 void PostDelayedTask(std::unique_ptr<v8::Task> task,
30 double delay_in_seconds) override;
32 void PostNonNestableDelayedTask(std::unique_ptr<v8::Task> task,
33 double delay_in_seconds) override;
35 void PostIdleTask(std::unique_ptr<v8::IdleTask> task) override;
37 bool NonNestableTasksEnabled() const override;
38 bool NonNestableDelayedTasksEnabled() const override;
41 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
46 #endif // GIN_V8_FOREGROUND_TASK_RUNNER_H_