0
Files
src/gin/v8_foreground_task_runner.h
François Doray bcd7d6bc1f [v8-tasks] Add source location to v8::TaskRunner, step 2/4.
Steps:
1. Add Post*TaskImpl variants of v8::TaskRunner::Post*Task methods,
   which take a v8::SourceLocation argument. Embedders should override
   these methods.
2. Override Post*TaskImpl instead of Post*Task in Chromium.
3. Override Post*TaskImpl instead of Post*Task in Node.js.
4. Make Post*Task methods non-virtual and add a v8::SourceLocation
   argument which defaults to SourceLocation::Current().

Bug: chromium:1424158
Change-Id: Idf388243db34508658311562fda8062428fd815d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5318370
Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
Auto-Submit: Francois Pierre Doray <fdoray@chromium.org>
Commit-Queue: Francois Pierre Doray <fdoray@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1265255}
2024-02-26 16:49:52 +00:00

50 lines
1.6 KiB
C++

// 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"
namespace base {
class SingleThreadTaskRunner;
}
namespace gin {
class V8ForegroundTaskRunner : public V8ForegroundTaskRunnerBase {
public:
V8ForegroundTaskRunner(
scoped_refptr<base::SingleThreadTaskRunner> task_runner);
~V8ForegroundTaskRunner() override;
// v8::Platform implementation.
bool NonNestableTasksEnabled() const override;
bool NonNestableDelayedTasksEnabled() const override;
private:
// v8::Platform implementation.
void PostTaskImpl(std::unique_ptr<v8::Task> task,
const v8::SourceLocation& location) override;
void PostNonNestableTaskImpl(std::unique_ptr<v8::Task> task,
const v8::SourceLocation& location) override;
void PostDelayedTaskImpl(std::unique_ptr<v8::Task> task,
double delay_in_seconds,
const v8::SourceLocation& location) override;
void PostNonNestableDelayedTaskImpl(
std::unique_ptr<v8::Task> task,
double delay_in_seconds,
const v8::SourceLocation& location) override;
void PostIdleTaskImpl(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_