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_WITH_LOCKER_H_
6 #define GIN_V8_FOREGROUND_TASK_RUNNER_WITH_LOCKER_H_
8 #include "base/memory/raw_ptr.h"
9 #include "base/memory/ref_counted.h"
10 #include "gin/v8_foreground_task_runner_base.h"
13 class SingleThreadTaskRunner;
18 class V8ForegroundTaskRunnerWithLocker : public V8ForegroundTaskRunnerBase {
20 V8ForegroundTaskRunnerWithLocker(
22 scoped_refptr<base::SingleThreadTaskRunner> task_runner);
24 ~V8ForegroundTaskRunnerWithLocker() override;
26 // v8::Platform implementation.
27 void PostTask(std::unique_ptr<v8::Task> task) override;
29 void PostNonNestableTask(std::unique_ptr<v8::Task> task) override;
31 void PostDelayedTask(std::unique_ptr<v8::Task> task,
32 double delay_in_seconds) override;
34 void PostIdleTask(std::unique_ptr<v8::IdleTask> task) override;
36 bool NonNestableTasksEnabled() const override;
39 raw_ptr<v8::Isolate> isolate_;
40 scoped_refptr<base::SingleThreadTaskRunner> task_runner_;
45 #endif // GIN_V8_FOREGROUND_TASK_RUNNER_WITH_LOCKER_H_