| // Copyright 2017 The Chromium Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #ifndef GIN_V8_FOREGROUND_TASK_RUNNER_H_ |
| #define GIN_V8_FOREGROUND_TASK_RUNNER_H_ |
| |
| #include"base/memory/ref_counted.h" |
| #include"gin/v8_foreground_task_runner_base.h" |
| |
| namespacebase{ |
| classSingleThreadTaskRunner; |
| } |
| |
| namespace gin{ |
| |
| class V8ForegroundTaskRunner:public V8ForegroundTaskRunnerBase{ |
| public: |
| V8ForegroundTaskRunner( |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner); |
| |
| ~V8ForegroundTaskRunner()override; |
| |
| // v8::Platform implementation. |
| boolNonNestableTasksEnabled()constoverride; |
| boolNonNestableDelayedTasksEnabled()constoverride; |
| |
| private: |
| // v8::Platform implementation. |
| voidPostTaskImpl(std::unique_ptr<v8::Task> task, |
| const v8::SourceLocation& location)override; |
| voidPostNonNestableTaskImpl(std::unique_ptr<v8::Task> task, |
| const v8::SourceLocation& location)override; |
| voidPostDelayedTaskImpl(std::unique_ptr<v8::Task> task, |
| double delay_in_seconds, |
| const v8::SourceLocation& location)override; |
| voidPostNonNestableDelayedTaskImpl( |
| std::unique_ptr<v8::Task> task, |
| double delay_in_seconds, |
| const v8::SourceLocation& location)override; |
| voidPostIdleTaskImpl(std::unique_ptr<v8::IdleTask> task, |
| const v8::SourceLocation& location)override; |
| |
| scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
| }; |
| |
| }// namespace gin |
| |
| #endif// GIN_V8_FOREGROUND_TASK_RUNNER_H_ |